pax_global_header00006660000000000000000000000064141464562120014517gustar00rootroot0000000000000052 comment=4a4c6e8d4db8a2a05009f696f6fb3dd70741bb0c Viewnior-viewnior-1.8/000077500000000000000000000000001414645621200150315ustar00rootroot00000000000000Viewnior-viewnior-1.8/.gitignore000066400000000000000000000006561414645621200170300ustar00rootroot000000000000000 ChangeLog Makefile Makefile.in *.[oa] *~ aclocal.m4 m4/intltool.m4 m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 m4/lt~obsolete.m4 autom4te.cache/ depcomp install-sh intltool-*.in ltmain.sh missing mkinstalldirs stamp-h1 config.h config.h.in config.log config.status config.guess config.sub configure compile libtool *.desktop .deps .idea builddir/ viewnior-*.tar.gz *.sublime-project *.sublime-workspace .vscode Viewnior-viewnior-1.8/AUTHORS000077500000000000000000000000541414645621200161030ustar00rootroot00000000000000Siyan Panayotov Viewnior-viewnior-1.8/COPYING000077500000000000000000001045141414645621200160740ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. 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 them 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 prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. 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. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey 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; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If 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 convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU 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 that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. 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. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 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. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. 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 state 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 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program 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, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU 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. But first, please read . Viewnior-viewnior-1.8/NEWS000077500000000000000000000075241414645621200155430ustar00rootroot00000000000000Viewnior 1.8 ------------ New features included: - Add Preview to the Open Image dialog - Add "Best Fit" option to the right-click context menu - Expand list of image info in the Property window (Description, Comment, Software) - Add hideable statusbar showing the same info as the titlebar - Increase size of the Crop Image window - Updated translations Fixed: - Don't allow drag and drop if source is the viewer itself - Better error handling when loading preferences - Properly escape file names displayed in the Delete popup - Remove 1px white gap when the menu and the toolbar are hidden - Memory leaks and UB Viewnior 1.7 ------------ New features included: - Show image dimensions to title bar - Add option to hide the scrollbars - Wallpaper support for Cinnamon, Puppylinux, and autodetect DE - Updated translations Fixed: - Setting wallpaper on XFCE 4.12+ and MATE Misc: - Move to the Meson Build system Viewnior 1.6 ------------ New features included: - Support back & forward buttons on your mouse Fixed: - Mouse scroll behaviour and actions settings Viewnior 1.5 ------------ New features included: - Disable Wallpaper support during compilation - Updated translations Fixed: - Preferences menu position - Nitrogen wallpaper support Viewnior 1.4 ------------ New features included: - Read EXIF and IPTC metadata - Nitrogen support - Updated translations Fixed: - Preserve metadata after image modification - Rendidering artifacts when panning Viewnior 1.3 ------------ New features included: - Wallpaper support for LXDE - Hebrew translation Fixed: - Wallpaper support for XFCE - Minor fixes Viewnior 1.2 ------------ New features included: - Improved menu interface - Wallpaper support for Gnome 2, Gnome 3, XFCE and FluxBox - --fullscreen argument to start in Fullscreen mode Fixed: - Drop images with right click - Save 'Auto resize' option between sessions Viewnior 1.1 ------------ New features included: - Full Drag'n'Drop support - Toggle window autoresize after image load - Remember window state (maximized) between startups - Add "Last Used Mode" zoom option - --slideshow argument to start in Slideshow mode - Gnome 3.0 ready Fixed: - Remove deprecated gtk+/glib symbols - .desktop entry issue Viewnior 1.0 ------------ Fixed: - After cropping make the save action sensitive - Rendering issues under Ubuntu 9.10 - Show position/total images in fullscreen view - Interface modifications/fixes Viewnior 0.7 ------------ New features included: - Simple Crop functionality - "Open With" menu - Show/hide the toolbar - New mouse wheel action - "Scroll image up/down" Fixed: - Honor image orientation metadata - Fix #415022: Custom assigned keybindings don't get saved - Fix #422507: Image height displayed incorrectly Viewnior 0.6 ------------ New features included: - Properties dialog - Preferences dialog - Configurable mouse actions Fixed: - Many User Interface fixes - Fix unaccurate double-click zooming Viewnior 0.5 ------------ New features included: - Rotate and flip images - Autohide toolbar and cursor in fullscreen mode - Popup (right-click) menu Fixed: - "Fit to window" really works (scales above than 1:1) Viewnior 0.4 ------------ New features included: - Drag'n'Drop - SetAsWallpaper (optional / only for Gnome) - Add "Open Image" and "Open Folder" to the File menu - Add "Delete" to the File menu - Fullscreen and Slideshow Fixed: - Multiple little code fixes Viewnior 0.3 ------------ New features included: - Translations - File Navigation - UI - menu and toolbar Fixed: - Message area now complete - Icon now better in small sizes - Maximum width and height Viewnior 0.2 ------------ New features included: - New icon - big red V - Message area, where warnings pop. - --version argument available. Viewnior 0.1 ------------ First release of Viewnior. Viewnior-viewnior-1.8/README.md000066400000000000000000000035631414645621200163170ustar00rootroot00000000000000# Viewnior - Fast and elegant image viewer This is Viewnior, an image viewer program. Created to be simple, fast and elegant. Its minimalistic interface provides more screenspace for your images. Among its features are: * Fullscreen & Slideshow * Rotate, flip, crop, save, delete images * Animation support * Browse only selected images * Navigation window * Set image as wallpaper (Gnome 2, Gnome 3, XFCE, MATE, Cinnamon, LXDE, FluxBox, Nitrogen, Puppylinux) * EXIF and IPTC metadata * Simple interface * Configurable mouse actions Most of the Viewnior's sources handling image viewing are adopted from the GtkImageView library by Björn Lindqvist. The files were cleaned up and modified, so that unused functionalities were removed (GtkImageToolSelector, GtkImageToolPainter, GtkZooms). Prefixes were changed from gtk_ to uni_ for clarity. ## Requirements This package requires the following modules to be installed: glib, GTK+, gio, shared-mime-info. You can get these packages from your favorite GNOME FTP mirror or at or from other sources where GNOME packages are distributed. shared-mime-info can be downloaded from the freedesktop.org website. ## Installation Find your distro on the [Downloads page](https://siyanpanayotov.com/project/viewnior/download). Or [install from source](https://siyanpanayotov.com/project/viewnior/download#source-code). ## How to report issues Please report any issues you find: . ## License This program is released under the terms of the [GNU General Public License](https://opensource.org/licenses/gpl-3.0.html). object-rotate-left.png, object-rotate-right.png are taken from Elementary icon theme by ~DanRabbit (under GPL). object-flip-horizontal.png, object-flip-vertical.png are taken from Gnome icon theme (under GPL). *Last Edited - 28 April 2018* Viewnior-viewnior-1.8/TODO000066400000000000000000000001751414645621200155240ustar00rootroot00000000000000 TODO List ================= * GTK+3 migration * Add documentation * Add file monitoring * Add lossless JPG rotation Viewnior-viewnior-1.8/data/000077500000000000000000000000001414645621200157425ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/icons/000077500000000000000000000000001414645621200170555ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/icons/16x16/000077500000000000000000000000001414645621200176425ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/icons/16x16/apps/000077500000000000000000000000001414645621200206055ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/icons/16x16/apps/viewnior.png000066400000000000000000000014601414645621200231560ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYsNN>tEXtSoftwarewww.inkscape.org<IDAT8k\e̽w&I&SIKTX_nB]R . eE[4P\L"JCiQ)L2ztƄzV}8pg+YRݥ7ev'K*(uJ2 }jF1t6s~wTtw#4*Wh/5_ZosH EBrjh7 țjd0/%ۛ&_/d7Zt9ʳCxQ5ST #^Mm_)zwcec9sTUGS} S}"M[@׻~ޭX8ǁF/(IUM$F$Ftspi^6;ۦ39b-P@zKv3E&kw5sLjq8&۲ăW~  xwcɮ5ߘTU?_/\]9ߎ 2a3^F}2o?0wFWE[x/%98`f,ThCB\lR0Z"@ xnsՒZ S#4HaF=DjiZIENDB`Viewnior-viewnior-1.8/data/icons/22x22/000077500000000000000000000000001414645621200176345ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/icons/22x22/apps/000077500000000000000000000000001414645621200205775ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/icons/22x22/apps/viewnior.png000066400000000000000000000021561414645621200231530ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYsppJtEXtSoftwarewww.inkscape.org<IDAT8KL\Uƿ91 P #ѸPA4pN]Ըh(MMXUиtanP4e #P -ܙwsp$gs/s↵8J˥vӂk7Xն>:ugJDvg@ICⵣN]l hB.%7ث)!, ;>if| ',᳀  A_|;O;$gRKI1!&}f~'ZAoջ1/@@('uw=}-Zv~v%]˵2p!Nj;gƢvmU,Xk1`c\sf?؅<*`@-[̈Mqҙ^\7ZA'-85k#  \̲eBȃJaStRjQ\i/vWn([w\>@7m#9݅9)j°Ŭ/9y->DB}HKΛ-P0[؀`/İ UWnl@8\!EЁǩByUw6`\^qA@R-xy~`T✛L9l' l&dMJQ.Ux&$zc@휕FLDz2n%wL䭆X s1Ȓn#*"LDD `uz+6*0cN;} DԺ^sG&1>XY[Qv05DDIENDB`Viewnior-viewnior-1.8/data/icons/24x24/000077500000000000000000000000001414645621200176405ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/icons/24x24/apps/000077500000000000000000000000001414645621200206035ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/icons/24x24/apps/viewnior.png000066400000000000000000000023471414645621200231610ustar00rootroot00000000000000PNG  IHDRw=sBIT|d pHYsɿtEXtSoftwarewww.inkscape.org<dIDATHMlTU7RRJ1 bJ$$Ƹs^PYD#U4~$.n%Vii̽h;cwwsCUA3r{PU?knzc8j-#w8.m"lz1z9#nH"SHQ[)R@Wu"WoP# Rĩ BnوUMgAxKsxzZlT) IT [(bץ_X1hN].~dDv8 = `Fw3  O6Xut,d<`yM6&%ѳz%bA%-Q+S"l SrE2ȱ_XW.9ZX]jG$|asP{tQ`*gg @Cof'3RA ^P4nmRsE1 0^1%6s&F̳laOsYi>Xv.4[!ٻ9K\tYb @da:>˔qMA :C1:XnsopB8aTyNӫ v jRki Pn26|~\;&O%f E'tMR żYk.C+ê?'dIώ"5AYC >ɔ;e7jӅ9]^MR$0("xΕXa>(NV2l&t^7U3xWgBCv\Wh.&yVUB#jXq'_d%%`Wv]0 w亟a]8G(1E3:"H}T=2K6Y #EIO1,"m"("" #")`fpMilpkp=3D$%"%R" {qfZNU)@Sr@q@)IENDB`Viewnior-viewnior-1.8/data/icons/32x32/000077500000000000000000000000001414645621200176365ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/icons/32x32/apps/000077500000000000000000000000001414645621200206015ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/icons/32x32/apps/viewnior.png000066400000000000000000000032621414645621200231540ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYs o]GtEXtSoftwarewww.inkscape.org</IDATX]W?k;G&̝$-kJb &Pc~)ilJRڴX(m Ķ ǝcL&q{{&1w?{^ٳ]FUˬp}'+8<>N#ւs`jL.Բc]|̿/MkŵChƋ~[7r+i?EW{ ZHqk'Mzή*.AE5g)hDD>o?8}?K2 8xr%IoW~Pm9gܛsa?Uk ;yOLK{sY 抉 820Ֆ[5PGݛ|AY * 䉹n mf1z'箟E\uǪ|o ȸ7O/P\bŁuI<Îwo&νf CUʍ+\a6Ynr[6{Zv z]6+릐_N?vvz΁Zב`Qj ޮ-tSe_sŪp8α:%RM?(ίAyrDo0%Ʌ%)u"д1njm"&M!X `)x.r.lN1kxjJh~\ԜwB?_ &9xvn=:$,ɍ~Rqg&҅7ʓ<>[;:pq /72nGO$"#jCMǭ`m I7*<؞owΚF4PX8ָ/=i1ڳ]~P:@8 ̎k;)х ")(G{%3ms Ff:)u e(!yU-" ,h9Xz5yDIXRyHc/s~VqW7IENDB`Viewnior-viewnior-1.8/data/icons/48x48/000077500000000000000000000000001414645621200176545ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/icons/48x48/apps/000077500000000000000000000000001414645621200206175ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/icons/48x48/apps/viewnior.png000066400000000000000000000044471414645621200232000ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAThoǿ_M[_F J)EPEoڴEj-&PZ6BJi5M$lPcN gnwg=wg4(RGzggٙ113>Ek3-7xGnj)??t*c@SUf0MQ wvVZzLk@k@+h+=i^cU+@xJO38G],km4aI$C $C 2V*X.HB hΙ39^.Q`fF[y܀;W_Y2ka\V[ѧMzL) ɼoSta[ qF!|וR Y`!h1,nK;ܔSWLģO<@̉@rS @rSJ6EM5ogl ?Nz,ذ7`}P@{UxZ[Q́zh,ZE9c8T5@[Uշǣ"TE_e|0d%ة,st tV73OÍ+u2O_xij32# W;qxjwwϭ\i/h6tJ:y@pN^`3pHYDXmGetjZH r%!+9NoJf e½ped AnX$븂肥E 1RwD: H!H4 gA~X&}+Yv5cW` @Cz~ߤ[B%0#sӟ,Dw>>oV< I4<_w ,e\-PW&/|2%(muwց3vVj+֠a+LxxH-ᛅgYLaZ)Yۛ%ᲂ geMۺ w`$^^+K& 9N XՌmjk o~K%.춎k`yǪTy;{%S4+ah b) iVG%Oa=NhzecKD-z]J\`a<"0'!bB*'D(`HM~#<;: ZJM=cġ uxPJ]$?XJmT቞ C:2gܗs2 F zC`M5 =Z"a-}WCԈ*5B#G Kq} ZcD)Sb YL`W;z=˄v4JU'0#k} vem3:4 &aS pf.e׷)ڝw(rd)uc Ak܄e?mf͌ߟ7܊!L |m+qO|zχz*]w55V[a/lY&ۼy1y}^rL* l7l^;3 f9v,Cx(Wӄ$iX\ֿ[ E pގ3/pE1 P|V”XB|}DLD D#";i'8DDD<O ߍW\vk=@V"jU 4%Eh]ghr>q$a/m&)h|*Ϋ{Dd0|, ;QGc?r xR[k4tvz ~ueW fv>\}a`Tǔ <3\s GD$p 0J>3<\=S\B  image/svg+xml Viewnior-viewnior-1.8/data/meson.build000066400000000000000000000016331414645621200201070ustar00rootroot00000000000000subdir('icons') po_dir = join_paths(meson.source_root(), 'po') install_data( 'vnr-preferences-dialog.ui', 'vnr-crop-dialog.ui', install_dir: join_paths(datadir, 'viewnior') ) install_data( 'pixmaps/object-rotate-right.png', 'pixmaps/object-rotate-left.png', 'pixmaps/object-flip-horizontal.png', 'pixmaps/object-flip-vertical.png', install_dir: join_paths(datadir, 'viewnior', 'pixmaps') ) install_data( 'viewnior.metainfo.xml', install_dir: join_paths(datadir, 'metainfo') ) desktop = i18n.merge_file( input: 'viewnior.desktop.in', output: 'viewnior.desktop', type: 'desktop', po_dir: po_dir, install: true, install_dir: join_paths(datadir, 'applications') ) desktop_file_validate = find_program('desktop-file-validate', required: false) if desktop_file_validate.found() test( 'validate-desktop', desktop_file_validate, args: [ desktop.full_path() ] ) endif Viewnior-viewnior-1.8/data/pixmaps/000077500000000000000000000000001414645621200174235ustar00rootroot00000000000000Viewnior-viewnior-1.8/data/pixmaps/object-flip-horizontal.png000066400000000000000000000023511414645621200245170ustar00rootroot00000000000000PNG  IHDR szzbKGDtIME;( e IDATXWmL[U~gA0FYk~8ΐe*0aӹE[?1n3+8cas JG{=K[=}9y=}i;*v#‹Th Z<de ˶"S%UK"dg\?C)D k+Rx7ƺ q)lI 1͛i /tIҼC$-p"`/.iC˄RС3b㙍$1QƺdC ^,F"xÅ)) Ox[am >@S ^>V1aB Zw 5O}8SOz`;P hdeb0`8ܭU_Z FĦ;ߺ;q>^9,7m; G9|Em{qۢ}s]sb[Ӈ_n=-wUhpfݛd,xO$8@is gLf[OBT(9PeW@e/ñQa|1eҕ/ش'aU Wq1ͻ|9$SJ/I_% y/r>Lr>~gw =2 ؁xaд $|J5G̗&Wl4X+y<}.pw>%;j?meDírt.L,:x(bÁIڌsXc_O;I*1e+rNoKzJz KGy` A!{IWcJ!_Ѱo O8t41z4&.Q_1PW  Z?uMSMBa y03:F*d"[OG8lРh.yuW[e8 @E3皸x Uy&r8A[!}iV&Wԯ5R0C;;p絍7MK#˻1.p ͤvQE>@#a Tjd5Zۨ/EuGM4:aMT\{ZZ2zB a'1OBIENDB`Viewnior-viewnior-1.8/data/pixmaps/object-flip-vertical.png000066400000000000000000000023241414645621200241370ustar00rootroot00000000000000PNG  IHDR szzbKGDtIME;( e vIDATXiL\U7oJhҲ4İ J!Z[kJbJ VԺ|&&i[[kb](t!FlU!vh)@ {0 u`%&&{s; YAKQ2!B`r; ۲(3wIb #;䩭`]J<6M/y}Z^[S6jrKB S*Xy aCUsŒ_b.#\OU"3 eYL;7!h GgћnHw EDʒ:pSso?c ШmPڏeV[zWG}ek'B Ozv ٘\^vX29 *bw}¸.&) YQێ!mSbZ|t:ژGLh"k|F ɮfq㓽LNXV"){"M{b  {$"44 AiH<Ȫ4dk֓g$Y[+UTœOyh=rn|Hy@$I%pL9 RNt5쀀ΎL+4EhU@w2x] h݁ei.Kb #*y`6$yvĬIF=*}6gOPc ޯt~ pEA}?#o TWlZz$,=̑qǴ==K4UĽrxauTb`cXbt.S `*$J"Fl&l3 aYW5{/-G?Ӗb` .u ]٬teS`T8@ Buzġ:%3<Oma]48Y\F6quku%zj{W n&80t/!Є*dz`ݔyX:[WCٗA=O]/;IyLq܌وIENDB`Viewnior-viewnior-1.8/data/pixmaps/object-rotate-left.png000066400000000000000000000062171414645621200236310ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDAThY{\y}>yϾfwkPQHN@(DIJP(%RS*U 5%$6Ŵa^!kSj/k{߳3w{3]/ޭO::G3qs.I)OH$cbYvS@ @RQ+l)'뎧ª䵑xS_%[;Z[654]h?, uSM:\[1?hMgDՠɱˮ(];![aHIf\@ك_L )puq=z_HGU٦v37|,J1!8(Z..%3* 8xD2莧^lmSel81cAUtAQƠMcKC'{wrf|sWӋ%tST#M_V68`TJ `@T!DeRUQu_S/3gN+N$c=F;olE;L!Y*kڬBLh?W?a_?w`[ݳ_wl]]&%q`6? *_׮UmHAc@CK#I$cօ0]‘Y^ 3Bp %x]-qQn MȦms7;kׅ?jxJYRdlXpib{ C!$:D\oNs5o92c%lX&AU uQa0v8j\U ]$  F<;X;k}=[~;ZڷSCLF 48t6m;rڂPfύZ.Z.k9.ى/U/^{jff87UYQZ: quUdDe]:1T`\&~x获V~=GK$cܕ5BUi^Ĺmq<㗜;R︫-"v7vy>j ShrQ/UŢ/ t,;bh67kׇ!|X̻bn&[%8 1UUJ;*\[:M"tCcc0F.6NJHbN(vQ@J=۹X_>˸y " ^~3\֏]QSrC:,WpG 3ϟ Ew< SX ,UJJM´[0zv#}\,ﱽ[.Ӟz/\Wz\3 IHI`I] JdqMo|:DP6C 8W3/B㵋BHT9c3E`>/&q[̰uRS]QR*k Օzޭ?1uW-YKȊ&Ta:mص׎HCmͻ}os Qhk\sMpyU08}W=N8) R/bu mD"k֮ %&lyo*{R9L(+TBH~"D,202PEM}Mm][_Czz?GƱ[k|]mMeu[fsmWŒg0F< ső ""); 7kr3R\c ?( #'bF̯ Nz(P9E ^PEU &lL Պ/!;Qݴ RJXצ[~uElEדM5!'b" 0b~X u%6TКM\Gx]Gx99L!p]jγxL•YGOeߩ֬R#@v߿xͯo G<]Q>5^H^5[y@B񖊢\I4Ho80r/9$[85|_L+)7oS5a! "ŅWUp2dvdgGՒLÇgPQki:n8vhdopߝO< @Cټ?G]~پ\׋yK*T^]GMY驡/>VS. ^+$jڇ;ĭOʠPQ,?~_(j9TNə鱣>s>w|)8 />swlz}-]qvAQ BNrxP»?߾cTasƏzVjd/7NKUSW4xto@S<*{ZtL!TRe +/0)ى8NGo9ۮwQ5w2 [w_h7BJE#c(D 1bx\WX#w$%DU̽0xew\67%#pBtߛ]E\Ja0UË=B4Nz(}/z\(,+@/| )IENDB`Viewnior-viewnior-1.8/data/pixmaps/object-rotate-right.png000066400000000000000000000062151414645621200240120ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDAThp\uǿJV-2,@v[70!]Ԅ 0&I2ɔ S4CvLuKNeH<.$ȄmX#YwW}{O]y%~${+i|={cDh$lÉW,cG# uxoQ5~$Ir:ǘ+bvcˮM'r -qg_\{h$q8_'cJZe&`߾/q'vY(I(خj:q I\ݾ{/=^~^ܤOtX@%j:ܵkTa*4$HS8r51buKx ?{oSOcq$\:$ BlKu%R$ Ф㭾GgN (Oh$]Qُ;7zG+/Pȹpm9D2G$AAQ8!͸ !hG,~o=n*ONobl7RRYK`:.Zvx^'%Wh$a?پ+%01b Ua$l&[5G 1-h$ ofdS좘>J֎m1;&.HAn]Ue?nrgqyih (%slG-:DB?eW֘ݫTҞ?#\*МWr0 Gɬ( G,z7?T% F7>靑No6eOgp+ ~3\ѡRQZv5 Qߝ?]5&.+Ա%̑jOY;O`h2sZ $Ե5|{B: Z@BԪ(!%DxFǦ1'Uiߊ9xݍMyx>;Q S L[V!@ø !]T }WS|֑%ɼbHNI9"ʂ(a30ƀ:wkϟbHA 4II6?TG^ La\ 0&4#o NNKS}{H-[m(oZp%KL?Ç3俞9 R>e[UrTMb1]ΆUh,?7tgF^-b)b,!jϾt;n{-G{oŹcu?zmI \B5:կG_pST5%ܳK1_S1~0?;|䞗{Op=#WfnWGh:vS4*Od޲9𛯝|bܭYguVrw6vi^5:'xuE}rh:G~Eb0}sW84袯*BAmLϚ|OS@ȣ66ytW^MC tZ J”#Rɢ8b8WH(p9CA9wdT[VvM M=hM%)I, L0t}rvߟ; \s0{{= t3cJ3YU<;`(>waC)x?T70IENDB`Viewnior-viewnior-1.8/data/viewnior.desktop.in000066400000000000000000000010751414645621200216070ustar00rootroot00000000000000[Desktop Entry] Name=Viewnior Comment=Elegant Image Viewer TryExec=viewnior Exec=viewnior %F Icon=viewnior StartupNotify=true Terminal=false Type=Application Categories=GNOME;GTK;Graphics;Viewer; MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/pjpeg;image/png;image/tiff;image/x-bmp;image/x-gray;image/x-icb;image/x-ico;image/x-png;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-xbitmap;image/x-xpixmap;image/x-pcx;image/svg+xml;image/svg+xml-compressed;image/vnd.wap.wbmp; Keywords=Image;Picture;Slideshow;Viewnior-viewnior-1.8/data/viewnior.desktop.in.in000077500000000000000000000011001414645621200222040ustar00rootroot00000000000000[Desktop Entry] _Name=Viewnior _Comment=Elegant Image Viewer TryExec=viewnior Exec=viewnior %F Icon=viewnior StartupNotify=true Terminal=false Type=Application Categories=GNOME;GTK;Graphics;Viewer; MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/pjpeg;image/png;image/tiff;image/x-bmp;image/x-gray;image/x-icb;image/x-ico;image/x-png;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-xbitmap;image/x-xpixmap;image/x-pcx;image/svg+xml;image/svg+xml-compressed;image/vnd.wap.wbmp; _Keywords=Image;Picture;Slideshow;Viewnior-viewnior-1.8/data/viewnior.metainfo.xml000066400000000000000000000025331414645621200221320ustar00rootroot00000000000000 viewnior.desktop CC0-1.0GPL-3.0+ Viewnior Simple image viewer and editor

Viewnior is a simple and elegant image viewer with a minimal interface that provides as much screen real estate as possible to view your images. It has a wide range of features, including: fullscreen and slideshow modes, the ability to rotate, flip and crop images, support for animations (GIF), support for reading image metadata, and the ability to configure mouse actions.

https://siyanpanayotov.com/project/viewnior https://github.com/hellosiyan/Viewnior/issues https://translations.launchpad.net/viewnior https://siyanpanayotov.com/images/vnr_normal_mode_2.png https://siyanpanayotov.com/images/vnr_pref_window.png https://siyanpanayotov.com/images/vnr_navigation_window.png contact_AT_siyanpanayotov.com
Viewnior-viewnior-1.8/data/vnr-crop-dialog.ui000066400000000000000000000257011414645621200213110ustar00rootroot00000000000000 5 Crop Image False True center-on-parent dialog False True 2 True 6 True True 0 True False False 1 True 2 0 True 2 6 6 6 True X: 1 2 True Y: 1 2 1 2 True Width: 3 4 True Height: 3 4 1 2 True True 2 3 True True 2 3 1 2 True True 4 5 True True 4 5 1 2 True True 5 6 False False 1 6 1 True end gtk-cancel True True True True False False 0 Crop True True True btn-image False False 1 False end 0 btn-cancel btn-crop True gtk-ok Viewnior-viewnior-1.8/data/vnr-preferences-dialog.ui000066400000000000000000000457061414645621200226560ustar00rootroot00000000000000 5 1 30 1 1 90 100 1 1 9 9 1 1 5 Viewnior Preferences False viewnior dialog False True 2 True True True 10 6 True True Open new image in: False False 0 False 0 True True Desktop: False False 0 False 1 Smooth images when zoomed True True False True False 2 Confirm image deletion True True False True False 3 Show hidden images True True False True False False 4 Dark window background True True False True False False 5 True General False True 10 6 True True 0 Show next image after (in seconds): 0 True True adjustment1 1 False 0 Always expand images to fit screen True True False True False False 1 1 True Fullscreen 1 False True 10 4 2 6 6 True 0 On mouse wheel: GTK_FILL True 0 On double click: 1 2 GTK_FILL True 0 On image modification: 2 3 GTK_FILL True 0 <small> (!) Navigating images with double click : Clicking on the left half of the window shows the previous image and on the right side - the next.</small> True 2 3 4 GTK_FILL 2 True Behavior 2 False True 10 5 Reload image on save True True False True 0 True 0 JPEG quality: False 1 True True adjustment2 0 bottom False 2 True 0 PNG compression: False 3 True True adjustment3 0 bottom False 4 3 True Saving 3 False 1 True end gtk-close True True True True False False 1 False end 0 close_button Viewnior-viewnior-1.8/man/000077500000000000000000000000001414645621200156045ustar00rootroot00000000000000Viewnior-viewnior-1.8/man/meson.build000066400000000000000000000000311414645621200177400ustar00rootroot00000000000000install_man('viewnior.1')Viewnior-viewnior-1.8/man/viewnior.1000066400000000000000000000014201414645621200175250ustar00rootroot00000000000000.TH VIEWNIOR 1 "December 14, 2010" .SH NAME viewnior \- simple, fast and elegant image viewer .SH SYNOPSIS .B viewnior [\fIOPTIONS\fR] [\fIFILES\fR|\fIFOLDERS\fR]... .SH DESCRIPTION Viewnior is an image viewer program. Created to be simple, fast and elegant. It's minimalistic interface provides more screenspace for your images. .SH OPTIONS .TP \fB\-\-slideshow\fR Start in slideshow .TP \fB\-\-fullscreen\fR Start in full screen mode .TP \fB\-?\fR, \fB\-\-help\fR Show this help and exit .TP \fB\-\-version\fR Show version information and exit .SH "SEE ALSO" .PP Website: http://siyanpanayotov.com/project/viewnior/ .SH AUTHOR Viewnior was written by Siyan Panayotov . .PP This manual page was written by Siyan Panayotov . Viewnior-viewnior-1.8/meson.build000066400000000000000000000026071414645621200172000ustar00rootroot00000000000000project('viewnior', 'c', 'cpp', version: '1.8', license: 'GPL3+', meson_version: '>= 0.43.0' ) add_global_arguments('-Wno-deprecated-declarations', language: 'c') # Directory variables datadir = get_option('datadir') # # Compiler variables cc = meson.get_compiler('c') # # Imports gnome = import('gnome') i18n = import('i18n') # # Dependencies glib_ver = '>= 2.32' viewnior_deps = [ dependency('gtk+-2.0', version: '>= 2.20'), dependency('glib-2.0', version: glib_ver), dependency('gio-2.0', version: glib_ver), dependency('shared-mime-info', version: '>= 0.20'), dependency('gdk-pixbuf-2.0', version: '>= 0.21'), dependency('exiv2', version: '>= 0.21'), ] # # Configuration conf = configuration_data() conf.set_quoted('VERSION', meson.project_version()) conf.set_quoted('PACKAGE', 'viewnior') conf.set_quoted('PACKAGE_VERSION', meson.project_version()) conf.set_quoted('PACKAGE_STRING', 'viewnior ' + meson.project_version()) conf.set_quoted('GETTEXT_PACKAGE', 'viewnior') conf.set_quoted('PACKAGE_DATA_DIR', join_paths(get_option('prefix'), get_option('datadir'))) conf.set_quoted('PACKAGE_LOCALE_DIR', join_paths(get_option('prefix'), get_option('datadir'), 'locale')) configure_file(output: 'config.h', configuration: conf) # viewnior_include_dirs = include_directories('.') subdir('po') subdir('data') subdir('man') subdir('src') meson.add_install_script('meson_post_install.py') Viewnior-viewnior-1.8/meson_post_install.py000066400000000000000000000014111414645621200213140ustar00rootroot00000000000000#!/usr/bin/env python3 import os import subprocess prefix = os.environ.get('MESON_INSTALL_PREFIX', '/usr/local') datadir = os.path.join(prefix, 'share') # Packaging tools define DESTDIR and this isn't needed for them if 'DESTDIR' not in os.environ: print('Updating icon cache...') icon_cache_dir = os.path.join(datadir, 'icons', 'hicolor') if not os.path.exists(icon_cache_dir): os.makedirs(icon_cache_dir) subprocess.call(['gtk-update-icon-cache', '-qtf', icon_cache_dir]) print('Updating desktop database...') desktop_database_dir = os.path.join(datadir, 'applications') if not os.path.exists(desktop_database_dir): os.makedirs(desktop_database_dir) subprocess.call(['update-desktop-database', '-q', desktop_database_dir]) Viewnior-viewnior-1.8/po/000077500000000000000000000000001414645621200154475ustar00rootroot00000000000000Viewnior-viewnior-1.8/po/.gitignore000066400000000000000000000000711414645621200174350ustar00rootroot00000000000000*.gmo *.mo *.pot POTFILES stamp-it .intltool-merge-cache Viewnior-viewnior-1.8/po/ChangeLog000077500000000000000000000031021414645621200172200ustar00rootroot000000000000002018-03-08 Siyan Panayotov * *: Import translations from Launchpad 2014-02-05 Siyan Panayotov * *: Import translations from Launchpad 2012-02-26 Siyan Panayotov * he.po: Add Hebrew translation by Isratine Citizen 2012-02-22 Siyan Panayotov * *: Import translations from Launchpad 2010-12-15 Siyan Panayotov * *: Import translations from Launchpad 2010-03-30 Siyan Panayotov * *: Import translations from Launchpad 2009-09-06 Siyan Panayotov * *: Import translations from Launchpad 2009-08-09 Siyan Panayotov * *: Import translations from Launchpad 2009-06-26 Siyan Panayotov * *: Import translations from Launchpad 2009-05-18 Siyan Panayotov * hu.po: Add hungarian translation by Peter Polonkai 2009-05-20 Siyan Panayotov * pl.po: Add Polish translation. by Tomasz Salacinski * de.po: Add German translation. by bitsteller * es.po: Add Spanish translation. by Xoan Sampaiño 2009-05-18 Siyan Panayotov * bg.po: Update Bulgarian translation. 2009-05-17 Siyan Panayotov * bg.po: Update Bulgarian translation. 2009-04-02 Siyan Panayotov * bg.po: Update Bulgarian translation. 2009-02-23 Siyan Panayotov * Started the ChangeLog. Viewnior-viewnior-1.8/po/LINGUAS000066400000000000000000000002501414645621200164710ustar00rootroot00000000000000# please keep this list sorted alphabetically ar bg bs ca ca@valencia cs da de el en_GB es fi fr gl he hu it ja lt nb_NO nl oc pl pt pt_BR ru sk sr sv tr uk zh_CN zh_TWViewnior-viewnior-1.8/po/POTFILES.in000077500000000000000000000005641414645621200172340ustar00rootroot00000000000000# List of source files containing translatable strings. # Please keep this file sorted alphabetically. [encoding: UTF-8] data/viewnior.desktop.in.in [type: gettext/glade]data/vnr-preferences-dialog.ui [type: gettext/glade]data/vnr-crop-dialog.ui src/main.c src/uni-scroll-win.c src/vnr-file.c src/vnr-prefs.c src/vnr-properties-dialog.c src/vnr-window.c src/uni-exiv2.hpp Viewnior-viewnior-1.8/po/POTFILES.skip000077500000000000000000000002351414645621200175670ustar00rootroot00000000000000# List of source files that should *not* be translated. # Please keep this file sorted alphabetically. data/viewnior.desktop.in sub/data/viewnior.desktop.in Viewnior-viewnior-1.8/po/ar.po000066400000000000000000000373371414645621200164260ustar00rootroot00000000000000# Arabic translation for viewnior # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2014-12-11 16:09+0000\n" "Last-Translator: Faissal Chamekh \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= " "3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "فيونيور" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "عارض صور خفيف ." #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "تفضيلات فيونيور" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "فتح الصورة الجديدة في : " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "سطح المكتب " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "تنعيم الصورة عندما تُكبّر" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "تأكيد حذف الصورة" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "عرض الصور المخفية" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "عام" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "عرض الصورة التالية بعد (بالثواني) : " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "دائمًا مدد الصور لتناسب الشاشة" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "ملء الشاشة" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "عند لف الفأرة : " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "عند الضغط المزدوج : " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "عند تعديل الصورة : " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) التنقل بين الصور بالضغط المزدوج :\n" " الضغط على النصف الأيسر من النافذة لعرض\n" " الصورة السابقة والجزء الأيمن للصورة التالية " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "سلوك" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "أعد تحميل الصورة عند الحفظ" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "جودة JPEG :" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "ضغط PNG :" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "جاري الحفظ" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "إقتصاص الصورة" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "س : " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "ص : " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "العرض : " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "الارتفاع: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "إقتصاص" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "الأمكنة المعطاة لا تحتوي على أية صور." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "فتح نافذة المتصفح" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "لا يمكن التعرف على نوع صورة\n" "الملف '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "الوضع الأنيق" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "وضع 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "تناسب لوضع النافذة" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "أخر وضع مستعمل" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "التنقل بين الصور" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "تكبير الصورة" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "إزاحة الصورة أعلى وأسفل" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "تبديل وضع التكبير" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "ادخل لوضع ملء الشاشة" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "اسأل كل مرة" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "حفظ تلقائى" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "تجاهل التغييرات" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "ال_تالي" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "ال_سابق" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "خصائص الصورة" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "الموقع:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "الاسم:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "النوع:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "الحجم:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "العرض:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "الارتفاع:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "بدون" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "استعمل \"%s\" لفتح الصورة المحددة" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "عرض الصورة التالية بعد: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " ثانية" msgstr[1] " ثانية" msgstr[2] " ثانيتين" msgstr[3] " ثواني" msgstr[4] " ثانية" msgstr[5] " ثانية" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "لا يوجد ذاكرة وهمية كافية." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "لايمكن حفظ التعديلات على الصورة .\n" "الكتابة على هذه الصيغة غير مدعومة ." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "حفظ التعديلات" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "فتح صورة" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "كلّ الصّور" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "كل الملفات" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "فتح مجلّد" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Faissal Chamekh https://launchpad.net/~chamfay\n" " Mohamed Mohsen https://launchpad.net/~linuxer9" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "إذا حذفت عنصر، سيُفقد للأبد." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "هل أنت متأكد من حذف \n" "الملف \"%s\" نهائيا ؟" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_ملف" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "ت_حرير" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_عرض" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_صورة" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "ا_ذهب" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "م_ساعدة" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "فتح ص_ورة ..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "فتح صورة" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "فتح _مجلد..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "فتح مجلد" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "إ_غلاق" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "إغلاق النافذة" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "عن البرنامج" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "عنْ هذا البرنامج" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_تفضيلات..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "تفضيلات المستخدم لفيونيور" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "ا_حفظ" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "حفظ التغييرات" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_خصائص" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "الخصائص" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "تعيين ك_خلفية" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "ضبط الصورة المحددة كخلفية سطح المكتب" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "_فتح باستخدام" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "افتح الصورة المحددة بتطبيق آخر" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_حذف" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "حذف الملف الحالي" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_خصائص..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "عرض معلومات عن الملف الحالي" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_إعادة التحميل" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "إعادة تحميل الملف الحالي" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "ت_كبير" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "كبّر الصورة" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "ت_صغير" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "تقليص الصورة" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "ال_حجم العادي" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "عرض الصورة في حجمها العادي" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "أفضل ملا_ئمة" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "ملائمة الصورة مع النافذة" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "دوران باتجاه _عقارب الساعة" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "تدوير الصورة باتجاه عقارب الساعة" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "دوران باتجاه ع_كس عقارب الساعة" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "تدوير الصورة باتجاه عكس عقارب الساعة" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "قلب _عمودي" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "اقلب الصورة عاموديا" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "قلب أ_فقي" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "اقلب الصورة افقيا" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "اقتصاص" #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "ملء الش_اشة" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "عرض بوضع ملء الشاشة" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "ضبط حجم النافذة" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "ضبط حجم النافذة لتناسب الصورة" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "شريط القوائم" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "أظهر شريط القوائم" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "شريط الأدوات" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "إظهار شريط الأدوات" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "عرض المصغرات" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "عرض بوضع المصغرات" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "الصّ_ورة السّابقة" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "اذهب للصّورة السّابقة في المجموعة" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "الصّورة ال_تّالية" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "اذهب للصورة التالية في المجموعة" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "الصّورة ال_أولى" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "اذهب للصورة الأولى في المجموعة" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "الصّورة الأ_خيرة" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "اذهب للصورة الأخيرة في المجموعة" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "مصنّع الكاميرا" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "طراز الكاميرا" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "تاريخ أخذ الصورة" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "زمن التعرض" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "نمط التعرض" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "قيمة الفتحة" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "السرعة القياسية" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "الوميض" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "نمط القياس" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "الطول ا لبؤرى" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "البرنامج" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "الوصف" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "حقوق النسخ" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "المؤلف" Viewnior-viewnior-1.8/po/bg.po000066400000000000000000000414701414645621200164050ustar00rootroot00000000000000# Bulgarian translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2012-05-04 17:55+0000\n" "Last-Translator: Ve4ernik \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Елегантна програма за разглеждане на картинки" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Настройки на Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Отваряне на ново изображение в: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Заглаждане при увеличаване на мащаба" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Изискване на потвърждение при изтриване" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Показване на скритите изображения" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Общи" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Показване на следващото изображение след (в секунди): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Разширяване на изображенията за напасване към екрана" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Цял екран" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "При скролване с мишката: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "При двойно кликване: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "При промяна на изображението: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Навигация с двойно кликване :\n" " Кликване върху лявата половина на изображението зарежда\n" " предишното изображение, а върху дясната - следващото. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Поведение" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Презареждане на изображението след запазване" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Качество на JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Компресия на PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Запазване" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Изрязване на изображение" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Ширина: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Височина: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Изрязване" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Указаното местоположение не съдържа изображения." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Отваряне прозореца за навигация" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Непознат файлов формат \n" "'%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Интелигентен режим" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Режим 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Режим изпълване на прозореца" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Навигиране из изображенията" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Мащабиране на изображението" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Превъртане на изображението нагоре/надолу" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Смяна режима на мащабиране" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Влизане в режим „Цял екран“" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Запитване всеки път" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Автоматичен запис" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Игнориране на промените" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "Напред" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "Назад" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Свойства на изображението" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Местоположение:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Име:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Вид:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Размер:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Широчина:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Височина:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Липсва" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Използвайте „%s“ за отваряне на избраното изображение" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Смяна на изображението след: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " секунда" msgstr[1] " секунди" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Оперативната памет е недостатъчна" #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Промените не могат да бъдат запазени.\n" "Записане в този файлов формат не се поддържа." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Отваряне на изображение" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Отваряне на папка" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alexander Andjelkovic https://launchpad.net/~frankbooth\n" " Siyan Panayotov https://launchpad.net/~xsisqox\n" " Svetoslav Stefanov https://launchpad.net/~svetlisashkov\n" " Ve4ernik https://launchpad.net/~ve4ernik" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Ако изтриете обект, той изчезва окончателно." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Сигурни ли сте, че искате\n" "окончателно да изтриете \"%s\"?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Файл" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Редактиране" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "Пре_глед" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Изображение" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "О_тиване" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Помощ" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Отваряне на изображение..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Отваряне на изображение" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Отваряне на папка..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Отваряне на папка" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "Затваряне" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Затваряне на прозореца" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "Относно" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "За програмата" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "Настройки..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Потребителски настройки за Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Запазване" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Запазване на промените" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Задаване като фон" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Задаване на изображението като фон" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Отваряне с" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Отваряне на избраното изображение с друга програма" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "Изтриване" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Изтриване на текущия файл" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Свойства..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Информация за текущия файл" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Презареждане" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Презареждане на текущия файл" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "Увеличаване" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Увеличаване на изображението" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Намаляване" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Смаляване на изображението" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "Нормален размер" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Показване на изображението в нормалния му размер" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Най-добро изпълване" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Вместване на изображението съобразно прозореца" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Завъртане надясно" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Завъртане изображението надясно" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Завъртане наляво" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Завъртане изображението наляво" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Обръщане по _вертикал" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Вертикално обръщане" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Обръщане по _хоризонтал" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Хоризонтално обръщане" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Изрязване..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Цял _Екран" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Показване в режим на цял екран" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "Преоразмеряване на прозореца" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Оразмеряване на прозореца спрямо изображението" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Лента с инструменти" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Показване на лентата с инструменти" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Про_жекция" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Зареждане в режим на прожекция" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "Предишно изображение" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Отиване на предишното изображение от колекцията" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Следващо изображение" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Отиване на следващото изображение от колекцията" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Първо изображение" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Отиване на първото изображение от колекцията" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Последно изображение" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Отиване на последното изображение от колекцията" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "" Viewnior-viewnior-1.8/po/bs.po000066400000000000000000000273641414645621200164270ustar00rootroot00000000000000# Bosnian translation for viewnior # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2014. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2014-04-14 19:45+0000\n" "Last-Translator: inkubator \n" "Language-Team: Bosnian \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: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Općenito" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Uvijek uvećaj sliku da se prilagodi veličini ekrana" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Preko cijelog ekrana" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Koristeći točkić miša: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Dvostrukim klikom: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Ponašanje" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Ponovo učitaj sliku nakon spašavanja" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG kvalitet:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG kompresija:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Čuvanje" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Isijeci sliku" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Širina: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Visina: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Isijeci" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Navedena lokacija ne sadrži slike." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Pametni režim" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Posljednji korišteni način" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Pregled slika" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Koristi cijeli ekran" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "" #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] "" msgstr[1] "" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "" #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " inkubator https://launchpad.net/~alen-voloder" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "" #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "" #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "" #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "" #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "" #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "" #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "" Viewnior-viewnior-1.8/po/ca.po000066400000000000000000000356431414645621200164050ustar00rootroot00000000000000# Catalan translation for viewnior # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the viewnior package. # Ecron Smith , 2013. # Robert Antoni Buj Gelonch , 2018. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2018-08-21 16:44+0200\n" "Last-Translator: Robert Antoni Buj Gelonch \n" "Language-Team: Catalan \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: 2018-05-12 11:12+0000\n" "X-Generator: Poedit 2.1.1\n" "Language: ca\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Un visualitzador d'imatges elegant" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Preferències de Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Obre la imatge nova en: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Escriptori: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Suavitza les imatges en ampliar-les" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Confirma la supressió de la imatge" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Mostra les imatges ocultes" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "General" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Mostra la imatge següent després de (segons): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Amplia sempre les imatges per ajustar-les a la pantalla" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Pantalla completa" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "En girar la roda del ratolí: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "En fer doble clic: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Quan es modifica la imatge: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " Navegació per les imatges amb doble clic:\n" " En fer clic a la meitat esquerra de la finestra es mostra la\n" " imatge anterior i en fer clic a la dreta es mostra la següent. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Comportament" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Torna a carregar la imatge en desar-la" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Qualitat JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Compressió PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Desament" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Escapça la imatge" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Amplada: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Alçada: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Escapça" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Les ubicacions donades no contenen cap imatge." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Obre la finestra del navegador" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "No es pot reconèixer el format d'imatge\n" "del fitxer «%s»" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Mode intel·ligent" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Mode 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Mode d'ajust a la finestra" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Últim mode utilitzat" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Navega per les imatges" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Amplia la imatge" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Desplaça la imatge dalt o baix" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Canvia els modes de zoom" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Activa el mode de pantalla completa" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Demana-ho cada vegada" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Desa automàticament" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignora els canvis" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Següent" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Anterior" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Propietats de la imatge" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Ubicació:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Nom:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Tipus:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Mida:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Amplada:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Alçada:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Cap" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Utilitza «%s» per obrir la imatge seleccionada" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Mostra la imatge següent després de: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " segon" msgstr[1] " segons" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "No hi ha prou memòria virtual." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "No es poden desar els canvis en la imatge.\n" "No s'admet l'escriptura en aquest format." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Voleu desar les modificacions?\n" "Aquesta acció sobreescriurà la imatge i pot reduir-ne la qualitat!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Obre una imatge" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Totes les imatges" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Tots els fitxers" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Obre una carpeta" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Ecron https://launchpad.net/~ecron-89\n" " toniem https://launchpad.net/~toni-estevez\n" "\n" "Robert Antoni Buj Gelonch " #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Si suprimiu un element, es perdrà de forma permanent." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Esteu segur que voleu suprimir\n" "de forma permanent «%s»?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Fitxer" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Edita" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Visualitza" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Imatge" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "Vé_s" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Ajuda" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Obre una _imatge..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Obre una imatge" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Obre una _carpeta..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Obre una carpeta" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Tanca" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Tanca la finestra" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Quant a" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Quant a aquesta aplicació" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Preferències..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Preferències d'usuari per Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Desa" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Desa els canvis" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Propietats" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Propietats" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Estableix com a fons de pantalla" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Estableix la imatge seleccionada com a fons de l'escriptori" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Obre _amb" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Obre la imatge seleccionada amb una aplicació diferent" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Suprimeix" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Suprimeix el fitxer actual" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Propietats..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Mostra informació sobre el fitxer actual" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Recarrega" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Torna a carregar el fitxer actual" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Amplia el zoom" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Amplia la imatge" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "_Redueix el zoom" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Redueix la imatge" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "Mida _normal" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Mostra la imatge en la seva mida normal" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "_Millor ajust" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Ajusta la imatge a la finestra" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Gira a la _dreta" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Gira la imatge en el sentit de les agulles del rellotge" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Gira a l'_esquerra" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Gira la imatge en el sentit contrari de les agulles del rellotge" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Inverteix _verticalment" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Inverteix la imatge verticalment" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Inverteix _horitzontalment" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Inverteix la imatge horitzontalment" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Escapça..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Pantalla _completa" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Mostra la imatge a pantalla completa" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Ajusta la mida de la finestra" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Ajusta la mida de la finestra per adaptar-se a la imatge" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Barra de menú" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Mostra la barra de menú" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Barra d'eines" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Mostra la barra d'eines" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Presentació de _diapositives" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Mostra les imatges en mode de presentació de diapositives" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "Imatge _anterior" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Vés a l'anterior imatge de la col·lecció" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "Imatge _següent" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Vés a la següent imatge de la col·lecció" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Primera imatge" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Vés a la primera imatge de la col·lecció" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "Ú_ltima imatge" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Vés a l'última imatge de la col·lecció" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Fabricant de la càmera" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Model de la càmera" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Data de la captura" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Temps d'exposició" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Mode d'exposició" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Valor d'obertura" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "Velocitat ISO" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Flaix" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Mode de mesura" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Distància focal" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Programari" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Descripció" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Drets d'autor" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Autor" Viewnior-viewnior-1.8/po/ca@valencia.po000066400000000000000000000343041414645621200202010ustar00rootroot00000000000000# Catalan (Valencian) translation for viewnior # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the viewnior package. # Ecron Smith , 2013. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2013-10-01 07:30+0000\n" "Last-Translator: Ecron \n" "Language-Team: Catalan (Valencian) \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: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Un visor d'imatges elegant" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Preferències del Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Obre una nova imatge en: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Suavitza les imatges en escalar" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Confirma la supresió de la imatge" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Mostra les imatges ocultes" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "General" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Mostra la imatge següent després de (segons): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Amplia les imatges per ajustar-les a la pantalla" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Pantalla completa" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "En fer ús de la roda del ratolí: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "En fer doble clic: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Quan es modifique la imatge: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Cóm navegar per les imatges amb doble clic:\n" " Si clica a la mitat esquerra de la finestra es mostrarà\n" " la imatge prèvia, i a la mitat dreta, la següent. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Comportament" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Actualitza la imatge en alçar-la" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Qualitat JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Compressió PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Alçant" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Escapça la imatge" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Amplada: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Alçada: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Escapça" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "No es troben imatges als directoris especificats." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Obri la finestra del navegador" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "No s'ha pogut reconèixer el format\n" "de la imatge '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Mode intel·ligent" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Mode 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Mode d'ajust a la finestra" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Navega per les imatges" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Escala la imatge" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Desplaça la imatge dalt o baix" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Commuta els modes d'escalat" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Mode pantalla completa" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Pregunta-ho sempre" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Alça automàticament" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignora els canvis" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "Següe_nt" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Prèvia" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Propietats de la imatge" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Ubicació:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Nom:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Tipus:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Mida:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Amplada:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Alçada:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Cap" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Utilitzeu \"%s\" per obrir la imatge" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Mostra la imatge següent després de: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " segon" msgstr[1] " segons" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "No n'hi ha prou memòria virtual." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Les modificacions fetes no es poden desar.\n" "El Viewnior no suporta l'escriptura en aquest format." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Obri una imatge" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Obri un directori" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Ecron https://launchpad.net/~ecron-89" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Si suprimiu un element, es perdrà de forma permanent." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Esteu segur que voleu suprimir\n" "de forma permanent \"%s\"?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Fitxer" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Edita" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Visualitza" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Imatge" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Vés" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Ajuda" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Obri una _imatge..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Obri una imatge" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Obri un _directori..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Obri un directori" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Tanca" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Tanca la finestra" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Quant a" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Quant a aquesta aplicació" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Preferències..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Preferències d'usuari per al Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Alça" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Alça els canvis" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Establix com a fons d'escriptori" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Establix la imatge com a fons d'escriptori" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Obri _amb" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Obri la imatge amb una aplicació diferent" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Suprimix" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Suprimix el fitxer" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Propietats..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Mostra la informació del fitxer" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Actualitza" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Actualitza el fitxer" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Apropa" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Fes gran la imatge" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Allunya" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Encongix la imatge" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "Mida _normal" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Mosta la imatge a la seua mida normal" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Millor ajust" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Ajusta la imatge a la finestra" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Gira cap a la dreta" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Gira la imatge en el sentit de les agulles del rellotge" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Gira cap a l'esquerra" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Gira la imatge en el sentit contrari a les agulles del rellotge" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Invertix _verticalment" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Invertix la imatge verticalment" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Invertix _horitzontalment" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Invertix la imatge horitzontalment" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Escapça..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Pantalla _completa" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Mostra la imatge a pantalla completa" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "Ajusta la mida de la finestra" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Ajusta la mida de la finestra per adaptar-se a la imatge" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Barra d'eines" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Mostra la barra d'eines" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Presentació de _diapositives" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Mostra les imatges en mode presentació" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "Imatge _prèvia" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Vés a la imatge anterior en la col·lecció" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "Imagte següe_nt" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Vés a la següent imatge en la col·lecció" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Primera imatge" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Vés a la primera imatge de la col·lecció" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Darrera imatge" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Vés a la darrera imatge de la col·lecció" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "" Viewnior-viewnior-1.8/po/cs.po000066400000000000000000000352261414645621200164240ustar00rootroot00000000000000# Czech translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2015-01-14 08:01+0000\n" "Last-Translator: Petr Šimáček \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Elegantní prohlížeč obrázků" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Nastavení Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Otevřít nový obrázek: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Plocha: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Obrázky při zvětšování vyhladit" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Potvrdit smazání obrázku" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Zobrazit i skryté obrázky" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Obecné" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Zobrazit další obrázek po (v sekundách): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Vždy přizpůsobit velikost obrázku oknu" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Přes celou obrazovku" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Při točení kolečkem myši: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Při dvojkliku: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Při úpravě obrázku: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Navigace v obrázcích pomocí dvojkliku :\n" " Kliknutím na levou polovinu okna bude zobrazen obrázek\n" " předchozí, kliknutím na pravou půlku pak obrázek následující. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Chování" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Po uložení obrázku jej znovu načíst" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Kvalita JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG komprese:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Ukládání" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Oříznout obrázek" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Šířka: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Výška: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Ořez" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Zadané umístění neobsahuje žádné obrázky." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Otevřít navigační okno" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Nemohu rozpoznat formát\n" "obrázku souboru \"%s\"" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Chytrý režim" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Režim 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Režim přizpůsobení velikosti okna" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Naposledy použitý režim" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Procházení obrázků" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Zvětšit obrázek" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Posouvat obrázek nahoru/dolu" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Přepnout režimy zvětšení" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Přejít do režimu celé obrazovky" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Pokaždé se zeptat" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Automatické ukládání" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignorovat změny" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Následující" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Předchozí" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Vlastnosti obrázku" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Umístění:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Název:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Typ:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Velikost:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Šířka:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Výška:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Nic" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Otevřít vybraný obrázek pomocí \"%s\"" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Zobrazit další obrázek po: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " sekundě" msgstr[1] " sekundách" msgstr[2] " sekundách" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Není dostatek virtuální paměti." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Změny obrázku nemohou být uloženy.\n" "Zápis v tomto formátu není podporován." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Uložit změny?\n" "Toto přepíše obrázek a může se snížit jeho kvalita." #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Otevřít obrázek" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Všechny obrázky" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Všechny soubory" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Otevřít složku" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Petr Šimáček https://launchpad.net/~petr-simacek\n" " Roman Horník https://launchpad.net/~roman.hornik" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Odstraníte-li položku, bude navždy ztracena." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Přejete si trvale\n" "odstranit \"%s\"?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Soubor" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Úpravy" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Zobrazit" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Obrázek" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Přejít" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Nápověda" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "_Otevřít obrázek..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Otevře obrázek" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Otevřít _složku..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Otevře složku" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Zavřít" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Zavřít okno" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_O programu..." #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "O této aplikaci" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Nastavení..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Uživatelská nastavení pro Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Uložit" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Uložit změny" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Vlastnosti" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Vlastnosti" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Nastavit jako _tapetu plochy" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Nastavit vybraný obrázek jako pozadí plochy" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Otevřít _s" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Otevřít vybraný obrázek jinou aplikací" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Smazat" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Smazat aktuální soubor" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "Vlas_tnosti..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Zobrazí informace o aktuálním souboru" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Obnovit" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Znovu načíst aktuální soubor" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Přiblížit" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Zvětšit obrázek" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "_Oddálit" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Zmenšit obrázek" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "No_rmální velikost" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Zobrazit obrázek v původní velikosti" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Při_způsobit velikost" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Přizpůsobit obrázek oknu" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Rotovat doprava" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Otočit obrázek ve směru hodinových ručiček" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Rotovat _doleva" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Otočit obrázek proti směru hodinových ručiček" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Převrátit _svisle" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Překlopit obrázek svisle" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Převrátit _vodorovně" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Překlopit obrázek vodorovně" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Ořez..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Přes celou o_brazovku" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Zobrazit v režimu celé obrazovky" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "Nastavit _velikost okna" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Nastavit velikost okna podle obrázku" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Hlavní nabídka" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Zobrazovat hlavní nabídku" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Lišta nástrojů" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Zobrazit lištu nástrojů" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Pr_ezentace" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Zobrazit promítání snímků" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Předchozí obrázek" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Přejít na předchozí obrázek ze sbírky" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Následující obrázek" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Přejít na následující obrázek ze sbírky" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "P_rvní obrázek" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Přejít na první obrázek ze sbírky" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "Po_slední obrázek" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Přejít na poslední obrázek ze sbírky" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Vytvoření fotoaparátu" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Model fotoaparátu" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Datum fotografování" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Doba expozice" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Režim expozice" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Clona" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "ISO" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Blesk" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Režim měření" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Ohnisková vzdálenost" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Software" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Popis" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Copyright" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Autor" Viewnior-viewnior-1.8/po/da.po000066400000000000000000000342541414645621200164030ustar00rootroot00000000000000# Danish translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2014-11-27 08:32+0000\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \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: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Elegant billedfremviser" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Viwenior-indstillinger" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Åbn nyt billede i: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Skrivebord: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Udjævn billeder når der zoomes" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Bekræft sletning af billede" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Vis skjulte billeder" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Generelt" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Vis næste billede efter (i sekunder): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Udvid altid billeder så de passer til skærmen" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Fuldskærm" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Ved musehjul: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Ved dobbeltklik: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Ved ændring af billede: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Naviger blandt billeder med dobbeltklik:\n" " Et klik på venstre side af vinduet viser det forrige\n" " billede og på højre side - det næste. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Opførsel" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Genindlæs billeder når der gemmes" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG-kvalitet:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG-komprimering:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Gemmer" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Beskær billede" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Bredde: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Højde: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Beskær" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "De angivne steder indeholder ikke billeder." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Åbn navigatorvindue" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Kunne ikke genkende billedfilen\n" "format for filen »%s«" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Smart-tilstand" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1-tilstand" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Tilpas til vindue-tilstand" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Sidst anvendte tilstand" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Naviger blandt billederne" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Zoom billede" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Rul billede op/ned" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Skift zoom-tilstande" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Brug fuldskærm" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Spørg hver gang" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Gem automatisk" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignorer ændringer" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Næste" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Forrige" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Billedegenskaber" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Placering:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Navn:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Type:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Størrelse:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Bredde:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Højde:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Ingen" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Brug »%s« til at åbne det valgte billede" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Vis næste billede efter: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " sekund" msgstr[1] " sekunder" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Ikke nok virtuel hukommelse." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Billedændringer kan ikke gemmes.\n" "Skrivning i dette format er ikke understøttet." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Gem ændringer?\n" "Dette vil overskrive billedet og kan reducere kvaliteten!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Åbn billede" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Alle billeder" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Alle filer" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Åbn mappe" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Joe Hansen https://launchpad.net/~joedalton2\n" " Rasmus Andersen https://launchpad.net/~rkan67\n" " Siyan Panayotov https://launchpad.net/~xsisqox" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Hvis du sletter et objekt, vil det være permanent tabt." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Er du sikker på, at du vil\n" "slette »%s« permanent?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Fil" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Rediger" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Vis" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Billede" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Start" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Hjælp" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Åbn _billede ..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Åbn et billede" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Åbn _mappe ..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Åbn en mappe" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Luk" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Luk vinduet" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Om" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Om dette program" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Indstillinger ..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Brugerindstillinger for Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Gem" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Gem ændringer" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Egenskaber" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Egenskaber" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Brug som _baggrundsbillede" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Gør det valgte billede til skrivebordsbaggrund" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Åbn _med" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Åbn det valgte billede med et andet program" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Slet" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Slet den nuværende fil" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Egenskaber ..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Vis oplysninger om den aktuelle fil" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Genindlæs" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Genindlæs den nuværende fil" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Zoom Ind" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Forstør billedet" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Zoom _ud" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Formindsk billedet" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Normal størrelse" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Vis billedet i sin normale størrelse" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "_Tilpas" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Tilpas billedet til vinduet" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Roter _med uret" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Roter billedet med uret" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Roter m_od uret" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Roter billedet mod uret" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Vend _lodret" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Vend billedet lodret" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Vend _vandret" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Vend billedet vandret" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Beskær ..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Fuld_skærm" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Vis i fuld skærm" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Juster vinduesstørrelse" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Juster vinduestørrelse, så det passer til billedet" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Menulinje" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Vis menulinje" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Værktøjslinje" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Vis værktøjslinje" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Diasshow" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Vis i diasshow-tilstand" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Forrige billede" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Gå til det forrige billede i samlingen" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Næste billede" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Gå til det næste billede i samlingen" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Første billede" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Gå til det første billede i samlingen" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Sidste billede" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Gå til det sidste billede i samlingen" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Kameramærke" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Kameramodel" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Dato taget" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Belysningstid" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Belysningstilstand" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Blændetal" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "ISO-hastighed" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Blitz" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Måletilstand" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Brændvidde" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Program" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Beskrivelse" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Ophavsret" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Forfatter" Viewnior-viewnior-1.8/po/de.po000066400000000000000000000353031414645621200164030ustar00rootroot00000000000000# German translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2015-02-12 13:36+0000\n" "Last-Translator: ErZe \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Eleganter Bildbetrachter" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Viewnior-Einstellungen" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Neues Bild öffnen mit: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Arbeitsfläche: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Bilder beim Zoomen glätten" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Vor dem Löschen eines Bildes nachfragen" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Versteckte Bilder anzeigen" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Allgemein" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Nächstes Bild zeigen nach (in Sekunden): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Bilder immer an den Bildschirm anpassen" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Vollbild" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Beim Drehen des Mausrades: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Bei Doppelklick: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Bei Bildveränderung: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" "Bilder mit Doppelklick navigieren:\n" " Auf die linke Seite klicken, um das vorige Bild zu zeigen\n" " und auf die rechte, um das nächste zu zeigen. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Verhalten" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Bild nach dem Speichern neu laden" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG-Qualität:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG-Komprimierung:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Speichern" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Bild zuschneiden" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Breite: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Höhe: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Zuschneiden" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Die angegebenen Orte enthalten keine Bilder." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Navigator-Fenster öffnen" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Das Bildformat der Datei »%s«\n" "konnte nicht erkannt werden" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Intelligenter Modus" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1-Modus" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "In Fenster einpassen" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Letzter benutzter Modus" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Bilder navigieren" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Bild zoomen" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Bild rauf/runter scrollen" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Zoom-Modus umschalten" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Vollbildmodus" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Immer nachfragen" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Automatisch speichern" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Veränderungen ignorieren" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Nächstes" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Vorheriges" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Bildeigenschaften" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Ort:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Name:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Typ:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Größe:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Breite:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Höhe:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Kein" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Verwenden Sie »%s«, um das gewählte Bild zu öffnen" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Zeige nächstes Bild nach: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " Sekunde" msgstr[1] " Sekunden" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Nicht genügend virtueller Speicher." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Änderungen am Bild können nicht gespeichert werden.\n" "Speichern in diesem Format wird nicht unterstützt." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Änderungen speichern?\n" "Dies überschreibt die Bilddatei und kann die Qualität des Bildes " "beeinträchtigen!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Bild öffnen" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Alle Bilder" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Alle Dateien" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Ordner öffnen" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Christoph Wickert https://launchpad.net/~cwickert\n" " ErZe https://launchpad.net/~guardofstone\n" " Fabian Affolter https://launchpad.net/~fab-fedoraproject\n" " Jan https://launchpad.net/~jancborchardt-deactivatedaccount\n" " Wieland Hoffmann https://launchpad.net/~themineo\n" " bitsteller https://launchpad.net/~bitsteller" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Das Löschen eines Bildes kann nicht rückgängig gemacht werden." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Soll »%s« wirklich \n" "unwiderruflich gelöscht werden?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Datei" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Bearbeiten" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Ansicht" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "B_ild" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Gehe zu" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Hilfe" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Bild ö_ffnen …" #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Ein Bild öffnen" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "_Ordner öffnen …" #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Einen Ordner öffnen" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Schließen" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "_Fenster schließen" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Über" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "_Über diese Anwendung" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Einstellungen …" #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Viewnior-Benutzereinstellungen" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Speichern" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Änderungen speichern" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Eigenschaften" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Als Hintergrund für die Arbeitsfläche ver_wenden" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Legt das ausgewählte Bild als Hintergrund der Arbeitsfläche fest" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Öffnen _mit" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Das gewählte Bild mit einer anderen Anwendung öffnen" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Löschen" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Die ausgewählte Datei löschen" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Eigenschaften …" #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Informationen zur momentan geöffneten Datei anzeigen" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Neu laden" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Die geöffnete Datei neu einlesen" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "Ver_größern" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Das Bild vergrößern" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Ver_kleinern" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Das Bild verkleinern" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Normale Größe" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Das Bild in seiner normalen Größe anzeigen" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "_Einpassen" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Das Bild auf die Fenstergröße anpassen" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Im _Uhrzeigersinn drehen" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Das Bild im Uhrzeigersinn drehen" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "_Gegen Uhrzeigersinn drehen" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Das Bild gegen den Uhrzeigersinn drehen" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "_Vertikal spiegeln" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Das Bild vertikal spiegeln" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "_Horizontal spiegeln" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Das Bild horizontal spiegeln" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Zuschneiden …" #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "_Vollbild" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Im Vollbildmodus anzeigen" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "Fenstergröße _anpassen" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Fenstergröße an das Bild anpassen" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Menüleiste" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Menüleiste anzeigen" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Werkzeugleiste" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Werkzeugleiste anzeigen" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Diaschau" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Im Diaschau-Modus öffnen" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Voriges Bild" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Zum vorigen Bild der Sammlung gehen" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Nächstes Bild" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Zum nächsten Bild der Sammlung gehen" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Erstes Bild" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Zum ersten Bild der Sammlung gehen" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Letztes Bild" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Zum letzten Bild der Sammlung gehen" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Kamerahersteller" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Kameramodell" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Aufnahmedatum" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Belichtungszeit" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Belichtungsmodus" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "ISO Wert" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Blitzlicht" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Brennweite" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Beschreibung" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Copyright" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Autor" Viewnior-viewnior-1.8/po/el.po000066400000000000000000000427151414645621200164200ustar00rootroot00000000000000# Greek translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2015-01-05 22:51+0000\n" "Last-Translator: Michalis Ntovas \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Καλαίσθητος Προβολέας Εικόνων" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Προτιμήσεις Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Άνοιγμα νέας εικόνας σε: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Επιφάνεια εργασίας: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Εξομάλυνση μεγενθυμένων εικόνων" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Επιβεβαίωση διαγραφής εικόνας" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Προβολή κρυφών εικόνων" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Γενικά" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Προβολή επόμενης εικόνας μετά από (σε δεύτερα): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Πάντα διαστολή εικόνων για ταίριασμα στην οθόνη" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Πλήρης Οθόνη" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Στη ροδέλα του ποντικιού: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Στο διπλό κλικ " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Κατά την τροποποίηση της εικόνας: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Πλοήγηση των εικόνων με διπλό κλικ :\n" "Κάνοντας κλικ στο αριστερό μισό του παραθύρου εμφανίζει\n" "την προηγούμενη εικόνα, ενώ στα δεξιά την επόμενη " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Συμπεριφορά" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Επαναφόρτωση της εικόνας κατά την αποθήκευση" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Ποιότητα JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Συμπίεση PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Αποθήκευση" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Περικοπή εικόνας" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "Χ: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Υ: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Πλάτος: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Ύψος: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Περικοπή" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Οι δοθείσες τοποθεσίες δεν περιέχουν εικόνες." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Άνοιγμα του παραθύρου πλοήγησης" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Δεν ήταν δυνατή η αναγνώριση του αρχείου εικόνας\n" "τύπος αρχείου '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Έξυπνη Λειτουργία" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1 Λειτουργία" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Τοποθέτηση σε Λειτουργία Παραθύρου" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Προηγούμενη λειτουργία" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Πλοήγηση εικόνων" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Μεγέθυνση εικόνας" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Κύλιση εικόνας πάνω/κάτω" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Αλλαγή σε λειτουργία μεγέθυνσης" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Είσοδος σε λειτουργία πλήρους οθόνης" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Ερώτηση κάθε φορά" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Αυτόματη αποθήκευση" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Αγνόηση αλλαγών" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Επόμενο" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Προηγούμενο" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Ιδιότητες εικόνας" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Τοποθεσία:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Ονομασία:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Τύπος:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Μέγεθος:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Πλάτος:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Ύψος:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Καμμία" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Χρήση \"%s\" για άνοιγμα της επιλεγμένης εικόνας" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Προβολή επόμενης εικόνας μετά από: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " δευτερόλεπτο" msgstr[1] " δευτερόλεπτα" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Όχι αρκετή εικονική μνήμη" #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Οι τροποποιήσεις στην εικόνα δεν είναι δυνατό να αποθηκευτούν.\n" "Δεν υποστηρίζεται εγγραφή σε αυτόν τον τύπο." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Αποθήκευση των αλλαγών;\n" "Αυτό θα αντικαταστήσει την εικόνα και μπορεί να μειώσει την ποιότητα της!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Άνοιγμα εικόνας" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Όλες οι Εικόνες" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Όλα τα Αρχεία" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Άνοιγμα Φακέλου" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Michalis Ntovas https://launchpad.net/~michalisntovas\n" " Γεώργιος Γεωργάς https://launchpad.net/~apopas" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Αν διαγράψετε ένα αντικείμενο, θα χαθεί οριστικά." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Είστε σίγουρος ότι θέλετε\n" "να διαγράψετε μόνιμα το \"%s\";" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Αρχείο" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Επεξεργασία" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Προβολή" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Εικόνα" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Μετάβαση" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Βοήθεια" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Άνοιγμα _Εικόνας..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Ανοίξτε μία Εικόνα" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Άνοιγμα _Φακέλου..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Ανοίξτε ένα Φάκελο" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Κλείσιμο" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Κλείσιμο Παραθύρου" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Περί" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Πληροφορίες Εφαρμογής" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Προτιμήσεις..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Προτιμήσεις χρήστη για Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Αποθήκευση" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Αποθήκευση αλλαγών" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Ιδιότητες" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Ιδιότητες" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Τοποθέτηση ως _Παρασκήνιο Επιφάνειας Εργασίας" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Τοποθέτηση της επιλεγμένης εικόνας ως Παρασκήνιο Επιφάνειας Εργασίας" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Άνοιγμα _Με" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Άνοιγμα της επιλεγμένης εικόνας με διαφορετική εφαρμογή" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Διαγραφή" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Διαγραφή παρόντος αρχείου" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Ιδιότητες..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Εμφάνιση πληροφοριών για το τρέχον αρχείο" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Επαναφόρτωση" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Επαναφόρτωσε το παρόν αρχείο" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Μεγέθυνση" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Μεγέθυνση Εικόνας" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Σμίκρ_υνση" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Συρρίκνωση Εικόνας" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Κανονικό Μέγεθος" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Προβολή κανονικού μεγέθους εικόνας" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Καλύτερο _Ταίριασμα" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Ταίριασμα στο Παράθυρο" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "_Δεξιόστροφη Περιστροφή" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Δεξιόστροφη περιστροφή της εικόνας" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "_Αριστερόστροφη Περιστροφή" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Αριστερόστροφη περιστροφή της εικόνας" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "_Κάθετη Αναστροφή" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Κάθετη αναστροφή της εικόνας" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "_Οριζόντια Αναστροφή" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Οριζόντια αναστροφή της εικόνας" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Περικοπή..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Πλήρης _Οθόνη" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Προβολή σε κατάσταση πλήρους οθόνης" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Ρύθμιση μεγέθους παραθύρου" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Ρύθμιση μεγέθους παραθύρου για ταίριασμα στην εικόνα" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Γραμμή Μενού" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Εμφάνιση γραμμής μενού" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Γραμμή εργαλείων" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Εμφάνιση γραμμής εργαλείων" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Προβολή Δια_φανειών" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Εμφάνιση σε προβολή διαφανειών" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Προηγούμενη Εικόνα" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Μεταφορά στην προηγούμενη εικόνα της συλλογής" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Επόμενη Εικόνα" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Μεταφορά στην επόμενη εικόνα της συλλογής" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Αρχική Εικόνα" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Μεταφορά στην αρχική εικόνα της συλλογής" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Τελευταία Εικόνα" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Μεταφορά στην τελευταία εικόνα της συλλογής" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Μάρκα κάμερας" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Μοντέλο κάμερας" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Ημερομηνία Λήψης" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Χρόνος έκθεσης" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Τύπος έκθεσης" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Τιμή Διαφράγματος" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "Ταχύτητα ISO" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Φλας" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Λειτουργία μέτρησης" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Εστιακή απόσταση" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Λογισμικό" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Περιγραφή" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Πνευματικά δικαιώματα" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Δημιουργός" Viewnior-viewnior-1.8/po/en_GB.po000066400000000000000000000337231414645621200167710ustar00rootroot00000000000000# English (United Kingdom) translation for viewnior # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2016-03-14 15:41+0000\n" "Last-Translator: Andi Chandler \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Elegant Image Viewer" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Viewnior Preferences" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Open new image in: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Desktop: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Smooth images when zoomed" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Confirm image deletion" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Show hidden images" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "General" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Show next image after (in seconds): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Always expand images to fit screen" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Fullscreen" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "On mouse wheel: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "On double click: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "On image modification: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Behaviour" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Reload image on save" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG quality:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG compression:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Saving" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Crop Image" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Width: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Height: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Crop" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "The given locations contain no images." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Open the navigator window" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Couldn't recognise the image file\n" "format for file '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Smart Mode" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1 Mode" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Fit To Window Mode" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Last Used Mode" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Navigate images" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Zoom image" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Scroll image up/down" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Switch zoom modes" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Enter fullscreen mode" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Ask every time" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Autosave" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignore changes" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Next" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Previous" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Image Properties" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Location:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Name:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Type:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Size:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Width:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Height:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "None" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Use \"%s\" to open the selected image" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Show next image after: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " second" msgstr[1] " seconds" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Not enough virtual memory." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Open Image" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "All Images" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "All Files" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Open Folder" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Andi Chandler https://launchpad.net/~bing\n" " SteVe Cook https://launchpad.net/~yorvyk" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "If you delete an item, it will be permanently lost." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Are you sure you want to\n" "permanently delete \"%s\"?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_File" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Edit" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_View" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Image" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Go" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Help" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Open _Image..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Open an Image" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Open _Folder..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Open a Folder" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Close" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Close window" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_About" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "About this application" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Preferences..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "User preferences for Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Save" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Save changes" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Properties" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Properties" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Set as _Wallpaper" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Set the selected image as the desktop background" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Open _With" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Open the selected image with a different application" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Delete" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Delete the current file" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Properties..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Show information about the current file" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Reload" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Reload the current file" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Zoom In" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Enlarge the image" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Zoom _Out" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Shrink the image" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Normal Size" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Show the image at its normal size" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Best _Fit" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Fit the image to the window" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Rotate _Clockwise" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Rotate image clockwise" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Rotate _Anti-clockwise" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Rotate image anti-clockwise" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Flip _Vertical" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Flip image vertically" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Flip _Horizontal" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Flip image horizontally" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Crop..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Full _Screen" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Show in fullscreen mode" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Adjust window size" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Adjust window size to fit the image" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Menu Bar" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Show Menu Bar" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Toolbar" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Show Toolbar" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Sli_deshow" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Show in slideshow mode" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Previous Image" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Go to the previous image of the collection" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Next Image" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Go to the next image of the collection" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_First Image" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Go to the first image of the collection" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Last Image" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Go to the last image of the collection" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Camera make" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Camera model" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Date Taken" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Exposure time" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Exposure mode" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Aperture Value" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "ISO speed" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Flash" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Metering mode" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Focal length" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Software" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Description" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Copyright" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Author" Viewnior-viewnior-1.8/po/es.po000066400000000000000000000364331414645621200164270ustar00rootroot00000000000000# Spanish translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2018-04-22 18:44+0000\n" "Last-Translator: toniem \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-05-12 11:12+0000\n" "X-Generator: Launchpad (build 18640)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Un visor de imágenes elegante" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Preferencias de Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Abrir una imagen nueva en: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Escritorio: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Suavizar las imágenes al ampliarlas" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Confirmar la eliminación de imágenes" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Mostrar las imágenes ocultas" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "General" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Mostrar la siguiente imagen tras (segundos): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Expandir siempre las imágenes para ajustarlas a la pantalla" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Pantalla completa" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Al girar la rueda del ratón: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Al clicar dos veces: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Al modificar la imagen: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" "Navegación de imágenes con doble clic:\n" " Al clicar en la mitad izquierda de la ventana se muestra la \n" " imagen anterior y al clicar en la derecha se muestra la siguiente. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Comportamiento" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Recargar la imagen al guardarla" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Calidad JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Compresión PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Guardar" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Recortar la imagen" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Anchura: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Altura: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Recortar" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Las ubicaciones dadas no contienen imágenes." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Abrir la ventana del navegador" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "No se reconoce el formato de imagen\n" "del archivo «%s»" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Modo inteligente" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Modo 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Modo de ajustar a la ventana" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Último modo usado" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Navegar por las imágenes" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Ampliar la imagen" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Desplazar la imagen hacia arriba/abajo" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Cambiar los modos de zoom" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Activar el modo de pantalla completa" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Preguntar siempre" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Guardar automáticamente" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignorar los cambios" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Siguiente" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Anterior" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Propiedades de la imagen" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Ubicación:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Nombre:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Tipo:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Tamaño:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Anchura:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Altura:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Ninguno" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Usar «%s» para abrir la imagen seleccionada" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Ver la siguiente imagen tras: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " segundo" msgstr[1] " segundos" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "No hay suficiente memoria virtual." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "No se pueden guardar los cambios en la imagen.\n" "No se admite la escritura en este formato." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "¿Quiere guardar los cambios?\n" "Esta acción sobreescribiará la imagen y puede reducir su calidad." #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Abrir una imagen" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Todas las imágenes" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Todos los archivos" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Abrir una carpeta" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Adolfo Jayme https://launchpad.net/~fitojb\n" " Federico Vera https://launchpad.net/~fedevera\n" " Javier García Díaz https://launchpad.net/~jgd\n" " Luis Ramon Lopez https://launchpad.net/~lrlopez\n" " Pablo Hugo Acevedo https://launchpad.net/~pabloha\n" " Rafael Augusto Maguiña Yrivarren https://launchpad.net/~ramy\n" " Xoan Sampaiño https://launchpad.net/~xoan\n" " bautz https://launchpad.net/~bautz\n" " perriman https://launchpad.net/~chuchiperriman\n" " toniem https://launchpad.net/~toni-estevez\n" " unknow https://launchpad.net/~unknow-deactivatedaccount1" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Si elimina un elemento, se perderá permanentemente." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "¿Seguro que quiere eliminar\n" "permanentemente «%s»?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Archivo" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Editar" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Ver" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Imagen" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Ir" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "Ay_uda" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Abrir una _imagen..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Abrir una imagen" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Abrir una _carpeta…" #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Abrir una carpeta" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Cerrar" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Cerrar la ventana" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Acerca de" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Acerca de esta aplicación" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Preferencias..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Preferencias de usuario para Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Guardar" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Guardar los cambios" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Propiedades" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Propiedades" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Establecer como el _fondo de pantalla" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "" "Establecer la imagen seleccionada como el fondo de pantalla del escritorio" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Abrir _con" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Abrir la imagen seleccionada con una aplicación diferente" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Eliminar" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Eliminar el archivo actual" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Propiedades..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Mostrar información acerca del archivo actual" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Recargar" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Recargar el archivo actual" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Ampliar" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Ampliar la imagen" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "_Reducir" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Reducir la imagen" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "Tamaño _normal" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Mostrar la imagen en su tamaño normal" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "_Mejor ajuste" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Ajustar la imagen a la ventana" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Girar a la _derecha" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Girar la imagen en el sentido de las agujas del reloj" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Girar a la _izquierda" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Girar la imagen en el sentido contrario a las agujas del reloj" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Voltear _verticalmente" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Voltear la imagen verticalmente" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Voltear _horizontalmente" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Voltear la imagen horizontalmente" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Recortar..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Pantalla _completa" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Mostrar en el modo de pantalla completa" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Ajustar el tamaño de la ventana" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Ajustar el tamaño de la ventana para que quepa la imagen" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Barra de Menú" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Mostrar la barra de menú" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Barra de herramientas" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Mostrar la barra de herramientas" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Pase de _diapositivas" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Mostrar en el modo de pase de diapositivas" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "Imagen _anterior" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Ir a la imagen anterior de la colección" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "Imagen _siguiente" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Ir a la siguiente imagen de la colección" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Primera imagen" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Ir a la primera imagen de la colección" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "Ú_ltima imagen" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Ir a la última imagen de la colección" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Fabricante de la cámara" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Modelo de cámara" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Fecha en que se tomó" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Tiempo de exposición" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Modo de exposición" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Valor de apertura" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "Velocidad ISO" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Flash" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Modo de medición" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Distancia focal" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Programa" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Descripción" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Derechos de autor" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Autor/a" Viewnior-viewnior-1.8/po/fi.po000066400000000000000000000340031414645621200164050ustar00rootroot00000000000000# Finnish translation for viewnior # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2017-12-03 03:07+0000\n" "Last-Translator: Ammuu5 \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Tyylikäs kuvannäyttäjä" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Viewnior asetukset" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Avaa uudet kuvat: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Työpöytäympäristö: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Varmista kuvan poistaminen" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Näytä piilotetut kuvat" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Yleistä" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Laajenna aina kuvat ruutuunsopiviksi." #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Kokoruutu" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Hiiren rulla: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Kaksoisnapsautus: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Kuvaa muuttaessa: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Kuvien selaaminen kaksoisnapsautuksella :\n" " Ikkunan vasemman puolen napsautus: edellinen kuva.\n" " Ikkunan oikean puolen napsautus: seuraava kuva. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Toiminta" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Lataa kuva uudelleen tallentaessa" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG-kuvanlaatu:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG-pakkausaste:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Tallennetaan" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Rajaa kuva" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Leveys: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Korkeus: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Rajaa" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Annetuissa paikoissa ei ole kuvia." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Avaa navigointi-ikkuna" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Tiedoston '%s'\n" "kuvatiedostomuotoa ei voitu tunnistaa" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Älykkäässä tilassa" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1 tilassa" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Ikkunaan sovitustilassa" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Viimeksi käytetyssä tilassa" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Selaa kuvia" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Suurenna kuvaa" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Vieritä kuvaa ylös/alas" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Muuta zomaustiloja" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Siirry kokoruututilaan" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Kysy joka kerta" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Tallenna automaattisesti" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Hylkää muutokset" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Seuraava" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Edellinen" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Kuvan ominaisuudet" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Paikka:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Nimi" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Tyyppi:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Koko:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Leveys:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Korkeus:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Ei määritelty" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Avaa valittu kuva komennolla ”%s”" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "" #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " sekunti" msgstr[1] " sekuntia" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Riittämätön virtuaalimuisti" #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Tallennetaanko muutokset?\n" "Tämä korvaa kuvan ja voi heikentää sen laatua!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Avaa kuva" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Kaikki kuvat" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Kaikki tiedostot" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Avaa kansio" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Ammuu5 https://launchpad.net/~ammuu5\n" " Kivikauppias https://launchpad.net/~kivikauppias" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Jos poistat kohteen, se häviää pysyvästi." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Haluatko varmasti poistaa\n" "pysyvästi tiedoston \"%s\"?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Tiedosto" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Muokkaa" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Näytä" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Kuva" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Siirry" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Ohje" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Avaa _kuva..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Avaa kuva" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Avaa _kansio..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Avaa kansio" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Sulje" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Sulje ikkuna" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "Tietoj_a" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Tietoja tästä sovelluksesta" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Asetukset..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Käyttäjäasetukset Viewniorille" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Tallenna" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Tallenna muutokset" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Ominaisuudet" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Ominaisuudet" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Aseta _taustakuvaksi" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Aseta valittu kuva työpöydän taustakuvaksi" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Avaa _sovelluksella" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Avaa valittu kuva eri sovelluksella" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Poista" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Poista nykyinen tiedosto" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Ominaisuudet..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Näytä tietoja nykyisestä tiedostosta" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Lataa uudelleen" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Lataa nykyinen tiedosto uudelleen" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Lähennä" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Suurenna kuvaa" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "L_oitonna" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Pienennä kuvaa" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Normaali koko" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Näytä kuva normaalikoossa" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "_Paras sovitus" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Sovita kuva ikkunaan" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Käännä _myötäpäivään" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Käännä kuvaa myötäpäivään" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Käännä _vastapäivään" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Käännä kuvaa vastapäivään" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Peilaa _pystysuunnassa" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Peilaa kuva pystysuunnassa" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Peilaa _vaakasuunnassa" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Peilaa kuva vaakasuunnassa" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Rajaa..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Koko_ruutu" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Näytä kokoruututilassa" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "Säädä ikkunan koko_a" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Säädä ikkunan koko sopimaan kuvaan" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Valikkopalkki" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Näytä valikkopalkki" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Työkalupalkki" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Näytä työkalupalkki" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Diaesitys" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Näytä diaesitystilassa" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Edellinen kuva" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Siirry kokoelman edelliseen kuvaan" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Seuraava kuva" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Siirry kokoelman seuraavaan kuvaan" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Ensimmäinen kuva" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Siirry kokoelman ensimmäiseen kuvaan" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Viimeinen kuva" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Siirry kokoelman viimeiseen kuvaan" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Kameran merkki" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Kameran malli" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Ottopäivä" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Valotusaika" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Valotustila" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Aukkoarvo" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "ISO-herkkyys" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Salama" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Mittaustapa" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Polttoväli" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Ohjelmisto" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Kuvaus" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Tekijänoikeus" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Tekijä" Viewnior-viewnior-1.8/po/fr.po000066400000000000000000000357511414645621200164310ustar00rootroot00000000000000# French translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2015-11-25 22:05+0000\n" "Last-Translator: Jean-Marc \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Un visionneur d'images élégant" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Préférences de Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Ouvrir la nouvelle image dans : " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Bureau : " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Lisser les images lors du zoom" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Confirmer la suppression de l'image" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Afficher les images cachées" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Général" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Intervalle entre les changements d'images (secondes) : " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Toujours adapter les images à la taille de l'écran" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Plein écran" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Lors de l'utiliation de la molette de la souris : " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Lors d'un double clic : " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Lors d'une modification d'image : " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Navigation dans les images par double clic :\n" " Cliquer dans la moitié gauche de la fenêtre montre\n" " l'image précédente, la partie droite la suivante. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Comportement" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Recharger l'image lors d'un enregistrement" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Qualité JPEG :" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Compression PNG :" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Enregistrement" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Découper l'image" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Largeur: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Hauteur: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Découper" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Les emplacements indiqués ne contiennent pas d'images." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Ouvrir la fenêtre de navigation" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Impossible de reconnaître le format\n" "de l'image '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Mode intelligent" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Mode 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Mode Ajusté à l'écran" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Mode précédent" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Naviguer dans les images" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Zoomer sur l'image" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Défilement haut/bas" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Changer de mode de zoom" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Passer en mode plein écran" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Demander à chaque fois" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Enregistrement automatique" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignorer les changements" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Suivant" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Précédent" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Propriétés de l'image" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Emplacement :" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Nom :" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Type :" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Taille :" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Largeur :" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Hauteur :" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Aucun" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Utiliser \"%s\" pour ouvrir l'image sélectionnée" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Montrer l'image suivante après : " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " seconde" msgstr[1] " secondes" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Pas assez de mémoire virtuelle." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Le modifications de l'image ne peuvent être enregistrées.\n" "L'écriture dans ce format n'est pas supporté." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Enregistrer les modifications ?\n" "Cela écrasera l’image et pourra réduire sa qualité !" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Ouvrir l'image" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Toutes les images" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Tous les fichiers" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Ouvrir le répertoire" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Jean-Marc https://launchpad.net/~m-balthazar\n" " Vincent L. https://launchpad.net/~vincent-laporte\n" " bautz https://launchpad.net/~bautz\n" " kezar https://launchpad.net/~kezar\n" " royto https://launchpad.net/~royto" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Si vous supprimez un élément, il sera définitivement perdu." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Êtes-vous sûr de vouloir\n" "supprimer définitivement \"%s\" ?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Fichier" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Édition" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Affichage" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Image" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Aller à" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Aide" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Ouvrir une _Image..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Ouvrir une Image" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Ouvrir un _Répertoire..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Ouvrir un Répertoire" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Fermer" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Fermer la fenêtre" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_À propos" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "À propos de cette application" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Préférences…" #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Préférences utilisateur de Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Enregistrer" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Enregistrer les modifications" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Propriétés" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Propriétés" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Définir comme arrière-plan du _bureau" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Définit l'image sélectionnée comme arrière-plan du bureau" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Ouvrir _avec" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Ouvre l'image sélectionnée avec une autre application" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Supprimer" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Supprimer le fichier courant" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Propriétés..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Affiche les informations concernant le fichier courant" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Recharger" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Recharger le fichier courant" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Zoom avant" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Agrandir l'image" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Zoom _arrière" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Réduire l'image" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "Taille _normale" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Afficher l'image à sa taille normale" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Taille _idéale" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Adapte la taille de l'image à celle de la fenêtre" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Rotation dans le sens _Horaire" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Fait tourner l'image dans le sens horaire" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Rotation dans le sens _Anti-horaire" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Fait tourner l'image dans le sens anti-horaire" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Miroir _vertical" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Miroir _vertical de l'image" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Miroir _horizontal" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Miroir _horizontal de l'image" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Découper..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "_Plein Écran" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Afficher en mode plein écran" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Ajuster la taille de la fenêtre" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Ajuste la taille de la fenêtre à celle de l'image" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Barre de menus" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Afficher la barre de menus" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Barre d'Outils" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Afficher la barre d'outils" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Diaporama" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Afficher en mode diaporama" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "Image _Précédente" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Affiche l'image précédente de la collection" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "Image _Suivante" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Affiche la prochaine image de la collection" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Première image" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Affiche la première image de la collection" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Dernière image" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Affiche la dernière image de la collection" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Marque de l'appareil photo" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Modèle de l'appareil photo" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Date du cliché" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Temps d'exposition" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Mode d'exposition" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Valeur d’ouverture" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "Vitesse ISO" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Flash" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Mode de mesure" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Longueur de focale" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Logiciel" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Description" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Droits d’auteur" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Auteur" Viewnior-viewnior-1.8/po/gl.po000066400000000000000000000345071414645621200164220ustar00rootroot00000000000000# Galician translation for viewnior # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the viewnior package. # Enrique Estévez Fernández , 2011. # Isis Edreira Collazo , 2011. # Alba Cid Fernández , 2011. # Miguel Anxo Bouzada , 2011. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2011-05-07 23:50+0000\n" "Last-Translator: Miguel Anxo Bouzada \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" "X-Poedit-Language: Galician\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Visor de imaxes elegante" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Preferencias do Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Abrir nova imaxe en: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Suavizar as imaxes ao amplialas" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Confirmar a eliminación da imaxe" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Mostrar as imaxes ocultas" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Xeral" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Mostrar a seguinte imaxe despois de (en segundos): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Expandir sempre as imaxes ata axustalas á pantalla" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Pantalla completa" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Ao desprazar a roda do rato: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Ao facer dobre clic: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Ao modificar a imaxe: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Navegar nas imaxes cun dobre clic :\n" " Premendo na metade esquerda da xanela mostra a\n" " imaxe previa e no lado dereito - a seguinte. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Comportamento" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Recargar imaxe ao gardar" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Calidade JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Compresión PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Gardando" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Recortar a imaxe" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Largura: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Altura: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Recortar" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "As localizacións fornecidas non conteñen imaxes." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Abrir a xanela do navegador" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Non foi posíbel recoñecer o formato do ficheiro de imaxe no ficheiro «%s»" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Modo intelixente" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Modo 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Axustar ao modo da xanela" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Navegar polas imaxes" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Ampliación da imaxe" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Desprazar a imaxe arriba e abaixo" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Cambiar os modos de ampliación" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Introducir o modo pantalla completa" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Preguntarme cada vez" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Gardado automático" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignorar os cambios" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Seguinte" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Anterior" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Propiedades da imaxe" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Localización:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Nome:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Tipo:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Tamaño:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Largura:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Altura:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Ningún" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Usar «%s» para abrir a imaxe seleccionada" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Mostrar a seguinte imaxe despois de: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " segundo" msgstr[1] " segundos" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Non hai memoria virtual abondo." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Non é posíbel gardar as modificacións da imaxe.\n" "Non está admitida a escritura neste formato." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Abrir a imaxe" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Abrir o cartafol" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Miguel Anxo Bouzada https://launchpad.net/~mbouzada" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Se elimina un elemento perderase para sempre." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Está seguro de querer eliminar\n" "permanentemente «%s»?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Ficheiro" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Editar" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Ver" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "I_maxe" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Ir" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Axuda" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Abrir a _imaxe..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Abrir unha imaxe" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Abrir _cartafol..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Abrir un cartafol" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Pechar" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Pechar a xanela" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Sobre" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Sobre este aplicativo" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Preferencias..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Usar preferencias para Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Gardar" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Gardar modificacións" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Definir como _fondo de escritorio" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Definir a imaxe seleccionada como o fondo de escritorio" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Abrir _con" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Abrir a imaxe seleccionada cun aplicativo distinto" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Eliminar" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Eliminar o ficheiro actual" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Propiedades..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Mostrar información sobre o ficheiro actual" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Recargar" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Recargar o ficheiro actual" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Ampliar" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Amplía a imaxe" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "_Reducir" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Reduce a imaxe" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "Tamaño _normal" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Mostrar a imaxe no seu tamaño normal" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Axuste ó_ptimo" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Axusta a imaxe á xanela" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Rotar no sentido do _reloxo" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Rotar a imaxe no sentido do reloxo" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Rotar no sentido _contrario do reloxo" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Rotar a imaxe no sentido contrario do reloxo" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Voltear _verticalmente" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Voltear a imaxe verticalmente" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Voltear _horizontalmente" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Voltear a imaxe horizontalmente" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Recortar..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Pantalla _completa" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Mostrar en modo de pantalla completa" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Axustar o tamaño da xanela" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Axustar o tamaño da xanela para axustar á imaxe" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Barra de ferramentas" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Mostrar barra de ferramentas" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Diaporama" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Mostrar en modo de diaporama" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "Imaxe _anterior" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Ir á imaxe anterior da colección" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Seguinte imaxe" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Ir á seguinte imaxe da colección" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Primeira imaxe" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Ir á primeira imaxe da colección" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "Ú_ltima imaxe" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Ir á última imaxe da colección" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "" Viewnior-viewnior-1.8/po/he.po000066400000000000000000000364441414645621200164160ustar00rootroot00000000000000# Hebrew translation for viewnior # This file is distributed under the same license as the viewnior package. # Isratine Citizen , 2011. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2015-10-11 07:53+0000\n" "Last-Translator: Yaron \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" "Language: he\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "מציג תמונות אלגנטי" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "העדפות Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "פתח תמונה חדשה במצב: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "שולחן עבודה: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "החלק תמונות בעת שינוי גודל" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "ודא מחיקת תמונה" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "הצג תמונות נסתרות" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "כללי" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "הצג תמונה באה לאחר (בשניות): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "הרחב תמיד תמונות כדי להתאים למסך" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "מסך מלא" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "בעת גלילת העכבר: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "בעת לחיצה כפולה: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "בעת שינוי תמונה: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) ניווט תמונות בעזרת לחיצה כפולה :\n" " לחיצה על החצי השמאלי של החלון תציג את התמונה\n" " הקודמת ולחיצה על הצד הימני - את הבאה. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "התנהגות" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "טען תמונה מחדש בעת שמירה" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "איכות JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "דחיסת PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "שמירה" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "חיתוך תמונה" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "‏X‏: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "‏Y‏: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "רוחב: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "גובה: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "חתוך" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "המיקומים שצוינו לא מכילים תמונות." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "פתיחת חלון הניווט" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "לא ניתן לזהות את תסדיר קובץ התמונה\n" "עבור הקובץ '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "חכם" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "התאמה לחלון" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "אחרון שהיה בשימוש" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "נווט בין תמונות" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "התקרבות לתמונה" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "גלול תמונה מעלה/מטה" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "החלף מצבי תקריב" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "כנס למצב מסך מלא" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "שאל בכל פעם" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "שמור אוטומטית" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "התעלם משינויים" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "ה_באה" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "ה_קודמת" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "מאפייני תמונה" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "מיקום:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "שם:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "טיפוס:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "מידה:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "רוחב :" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "גובה :" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "ללא" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "השתמש ביישום \"%s\" כדי לפתוח את התמונה הנבחרת" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "הצג תמונה באה כעבור: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " שניה" msgstr[1] " שניות" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "אין מספיק זיכרון וירטואלי." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "אין אפשרות לשמור את השינויים בתמונה.\n" "כתיבה בפורמט זה אינה נתמכת." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "לשמור שינויים?\n" "פעולה זו תמחק את התמונה ועלולה להפחית את איכותה!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "פתיחת תמונה" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "כל התמונות" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "כל הקבצים" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "פתיחת תיקייה" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " GenghisKhan https://launchpad.net/~genghiskhan\n" " Yaron https://launchpad.net/~sh-yaron" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "כאשר פריט נמחק, הוא יאבד לצמיתות." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "האם למחוק את \"%s\" לצמיתות?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_קובץ" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "ע_ריכה" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "ת_צוגה" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "תמו_נה" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_מעבר" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "ע_זרה" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "_פתיחת תמונה..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "פתיחת תמונה" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "פתיחת _תיקייה…" #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "פתיחת תיקייה" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_סגירה" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "סגירת חלון" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "על _אודות" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "פרטים על היישום הזה" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "ה_עדפות…" #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "העדפות משתמש עבור Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_שמור" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "שמירת שינויים" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "מ_אפיינים" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "מאפיינים" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "ה_גדרה כרקע שולחן העבודה" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "הגדרת התמונה הנבחרת כרקע שולחן העבודה" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "פתח ב_עזרת" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "פתיחת התמונה הנבחרת בעזרת יישום אחר" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "מ_חק" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "מחיקת הקובץ הנוכחי" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "מ_אפיינים..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "הצגת מידע אודות הקובץ הנוכחי" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_רענון" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "טעינה מחדש של הקובץ הנוכחי" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "הת_קרבות" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "הגדלת התמונה" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "התר_חקות" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "כיווץ התמונה" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "גודל _רגיל" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "הצגת התמונה בגודל הרגיל שלה" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "התאם לת_צוגה" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "התאמת התמונה לחלון" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "סובב _עם כיוון השעון" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "סיבוב התמונה עם כיוון השעון" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "סובב _נגד כיוון השעון" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "סיבוב התמונה נגד כיוון השעון" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "הפוך א_נכית" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "היפוך אנכי של התמונה" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "הפוך או_פקית" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "היפוך אופקי של התמונה" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "חיתוך…" #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "מ_סך מלא" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "הצגה במצב של מסך מלא" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "ה_תאם ממדי חלון" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "התאמת מידת חלון לתמונה" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "שורת תפריטים" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "הצג שורת תפריטים" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "סרגל הכלים" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "הצגת סרגל הכלים" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "מ_צגת" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "הצגה כמצגת" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "תמונה _קודמת" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "מעבר אל התמונה הקודמת שבאוסף" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "תמונה _באה" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "מעבר אל התמונה הבאה שבאוסף" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "תמונה _ראשונה" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "מעבר אל התמונה הראשונה שבאוסף" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "תמונה _אחרונה" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "מעבר אל התמונה האחרונה שבאוסף" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "יצרן מצלמה" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "דגם מצלמה" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "תאריך הצילום" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "זמן חשיפה" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "מצב חשיפה" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "ערך פתח" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "מהירות ISO" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "מבזק" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "מצב מונה מטר" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "אורך מוקד" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "תכנה" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "תיאור" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "זכויות יוצרים" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "יוצר" Viewnior-viewnior-1.8/po/hu.po000066400000000000000000000342771414645621200164400ustar00rootroot00000000000000# Hungarian translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2009-12-04 00:07+0000\n" "Last-Translator: Polesz \n" "Language-Team: Hungarian \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: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Elegáns Képnéző" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Viewnior beállítások" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Új kép megnyitása ebben: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Kép simítása nagyításkor" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Kép törlés megerősítése" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Rejtett képek mutatása" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Általános" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Következő kép mutatása (másodpercben): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Mindig illessze a képet a képernyőhöz" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Teljes képernyő" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Kerékgörgő használatakor: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Kettős kattintáskor: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Kép módosításakor: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Képek közötti navigáció dupla kattintáskor :\n" " Kattintson az ablak bal oldalán az előző kép és\n" " a jobb oldalán a következő kép mutatásához. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Viselkedés" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Kép újratöltése mentéskor" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG minőség:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG tömörítés:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Mentés" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Kép vágása" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Szélesség: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Magasság: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Vágás" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Az adott helyek nem tartalmaznak képeket." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Navigációs ablak megnyitása" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Nem sikerült azonosítani\n" "a képfálj formátumát '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Intelligens üzemmód" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1 Méret" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Ablakhoz igazítás" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Képek közötti mozgás" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Kép nagyítása" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Kép görgetése fel/le" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Váltás a nagyítási módok között" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Belépés teljesképernyős módba" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Mindig kérdezzen" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Automatikus mentés" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Változások elvetése" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Következő" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Előző" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Kép tulajdonságai" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Hely:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Név:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Típus:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Méret:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Szélesség:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Magasság:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Nincs" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "A kijelölt kép megnyitása ezzel: „%s”" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Következő kép mutatása: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " másodperc" msgstr[1] " másodperc" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Nincs elég virtuális memória." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Kép módosításainak elmentése nem sikerült.\n" "Az írni kívánt fájlformátum nem támogatott." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Kép megnyitása" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Mappa megnyitása" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Polesz https://launchpad.net/~polesz-nedudu" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Ha töröl egy elemet, akkor az véglegesen el fog veszni." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Biztos benne, hogy\n" "véglegesen törli \"%s\"?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Fájl" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "Sz_erkesztés" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Nézet" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Kép" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Ugrás" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Segítség" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Kép _megnyitása..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Kép megnyitása" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Ma_ppa megnyitása…" #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Mappa megnyitása" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Bezárás" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Ablak bezárása" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Névjegy" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Az alkalmazás névjegye" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Beállítások..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Felhasználói beállítások" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Mentés" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Változtatások mentése" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Beállítás _háttérképként" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "A kijelölt kép beállítása asztalháttérként" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Megnyitás _ezzel" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Kiválasztott kép megnyitása más alkalmazással." #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Törlés" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Aktuális fájl törlése" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Tulajdonságok…" #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "A jelenlegi fájl adatai" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "Új_ratöltés" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Az aktuális fájl újratöltése" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Nagyítás" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Kép nagyítása" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "_Kicsinyítés" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Kép kicsinyítése" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "N_ormál méret" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Kép megjelenítése rendes méretben" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Legjobb _illeszkedés" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Kép igazítása az ablakhoz" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Forgatás az óramutató járásával" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Forgatás az óramutató járásával megyezően" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Forgatás ellentétesen" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Forgatás az óramutató járásával ellentétesen" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "_Függőleges tükrözés" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "A kép függőleges tükrözése" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "_Vízszintes tükrözés" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "A kép vízszintes tükrözése" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Vágás..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Telje_s képernyő" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Mutatás teljes képernyős üzemmódban" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Ablak méretének beállítása" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Ablak méretének beállítása a kép méretéhez" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Eszköztár" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Eszköztár megjelenítése" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Diavetítés" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Mutatás diavetítés módban" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Előző kép" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Ugrás a gyűjtemény előző képére" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Következő kép" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Ugrás a gyűjtemény következő képére" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Első kép" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Ugrás a gyűjtemény első képére" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Utolsó kép" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Ugrás a gyűjtemény utolsó képére" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "" Viewnior-viewnior-1.8/po/it.po000066400000000000000000000342741414645621200164350ustar00rootroot00000000000000# Italian translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2012-07-08 09:34+0000\n" "Last-Translator: Leonardo Corato \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Elegante Visualizzatore di Immagini" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Preferenze di Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Apri nuova immagine: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Sfuma immagini ingrandite" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Conferma" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Mostra immagini nascoste" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Generale" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Mostra immagine successiva dopo (secondi): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Adatta sempre le immagini alla finestra" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Schermo intero" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Rotella del mouse: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Doppio click: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Alla modifica dell'immagine: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Scorri le immagini col doppio click :\n" " Clicando sulla metà finestra di sinistra mostra\n" " l'immagine precedente, e sulla destra la seguente. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Comportamento" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Ricarica immagine dopo il salvataggio" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Qualità JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Compressione PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Salvataggio" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Ritaglia immagine" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Larghezza: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Altezza: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Ritaglia" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "La posizione fornita non contiene alcuna immagine." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Apri finestra di navigazione" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Non riconosco il formato dell'immagine\n" "del file '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Modalità Intelligente" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Scala 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Adattato a finestra" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Scorri Immagini" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Ingrandisci immagine" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Scorri immagine su/giù" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Alterna modo ingrandimento" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Attiva modalità a schermo intero" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Chiedi ogni volta" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Salvataggio automatico" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignora modifiche" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Successivo" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Precedente" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Proprietà immagine" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Posizione:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Nome:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Tipo:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Dimensione:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Larghezza:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Altezza:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Nessuno" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Usa \"%s\" per aprire l'immagine selezionata" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Mostra immagine successiva dopo: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " secondo" msgstr[1] " secondi" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Memoria virtuale non sufficiente." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Le modifiche all'immagine non possono essere salvate.\n" "La scrittura in questo formato non è supportata." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Apri immagine" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Apri Cartella" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Leonardo Corato https://launchpad.net/~leocor\n" " Milo Casagrande https://launchpad.net/~milo\n" " Vito Fasano https://launchpad.net/~vito.fasano\n" " bautz https://launchpad.net/~bautz" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Se cancelli un'elemento, sarà perso per sempre." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Sei sicuro di voler cancellare\n" "per sempre \"%s\"?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_File" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Modifica" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Visualizza" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Immagine" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Vai" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Aiuto" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Apri _Immagine..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Apri un'Immagine" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Apri _Cartella..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Apri una Cartella" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Chiudi" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Chiudi finestra" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "I_nformazioni" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Informazioni sull'applicazione" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Preferenze..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Preferenze utente per Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Salva" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Salva modifiche" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Imposta come _Sfondo" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Imposta l'immagine selezionata come sfondo della scrivania" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Apri _con" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Apre l'immagine selezionata con una diversa applicazione" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Elimina" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Elimina il file corrente" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Proprietà..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Mostra le informazioni sul file attuale" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Ricarica" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Ricarica il file corrente" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "Aum_enta ingrandimento" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Ingrandisci l'immagine" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Rid_uci ingrandimento" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Rimpicciolisce l'immagine" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "Dimensione _Normale" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Mostra l'immagine alla sua dimensione normale" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "_Adatta" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Adatta l'immagine alla finestra" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Ruota _Orario" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Ruota in senso orario" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Ruota _Antiorario" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Ruota in senso antiorario" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Rifletti _verticalmente" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Rifletti l'immgine in verticale" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Rifletti _orizzontalmente" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Rifletti l'immagine in orizzontale" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Ritaglia..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Sc_hermo Intero" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Visualizza a schermo intero" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "Adatta dimensione _Finestra" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Adatta dimensone finestra all'immagine" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Barra degli strumenti" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Mostra barra strumenti" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Diapositive" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Mostra presentazione immagini" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "Immagine pr_ecedente" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Va all'immagine precedente della raccolta" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "Immagine _successiva" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Va all'immagine successiva della raccolta" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Prima immagine" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Va alla prima immagine della raccolta" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Ultima immagine" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Va all'ultima immagine della raccolta" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "" Viewnior-viewnior-1.8/po/ja.po000066400000000000000000000353201414645621200164040ustar00rootroot00000000000000# Japanese translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior-0.7\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2014-03-13 01:37+0000\n" "Last-Translator: Mika Kobayashi \n" "Language-Team: Team Puppy linux Japan\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: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "エレガントな画像ビューア" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Viewnior 設定" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "新しい画像を開く: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "デスクトップ: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "拡大したときに画像をなめらかにする" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "画像の削除を確認する" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "隠し画像を表示" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "全般" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "次の画像を表示するまでの時間 (秒): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "常に画面に合うように画像を拡大" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "全画面" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "マウスホイール: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "ダブルクリック: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "画像修正: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) ダブルクリックで画像を移動:\n" " ウィンドウの左半分でクリックすると前の画像を表示し\n" " 右半分でクリックすると次の画像を表示します。 " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "動作" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "保存時に画像を再読み込み" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG品質:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG圧縮:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "保存" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "画像の切り出し" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "幅: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "高さ: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "切り出し" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "指定された場所には画像はありません。" #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "ナビゲータ ウィンドウ" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "画像ファイル形式を認識できません。\n" "ファイル名: '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "スマートモード" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1 モード" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "ウィンドウ モードに合わせる" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "最後に使用されたモード" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "画像を移動" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "画像をズーム" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "画像を上下にスクロール" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "ズーム モードを切り替え" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "全画面モードに移動" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "常に確認" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "自動保存" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "変更を無視" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "次(_N)" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "前(_P)" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "画像のプロパティ" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "場所:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "名前:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "形式:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "サイズ:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "幅:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "高さ:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "なし" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "選択画像を開くのに \"%s\" を使う" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "後ろに次の画像を表示: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " 秒" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "仮想メモリが足りません。" #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "画像の修正が保存できません。\n" "この形式への書き込みはサポートされていません。" #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "変更を保存しますか?" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "画像を開く" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "すべての画像" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "すべてのファイル" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "フォルダを開く" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Mika Kobayashi https://launchpad.net/~mika-ko\n" " YoN https://launchpad.net/~yon8844" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "アイテムを削除すると、永久に失われます。" #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "本当に次のファイル\n" " \"%s\" を永久に削除しますか?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "ファイル(_F)" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "編集(_E)" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "表示(_V)" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "画像(_I)" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "移動(_G)" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "ヘルプ(_H)" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "画像を開く(_I)..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "画像を開く" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "フォルダを開く(_F)..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "フォルダを開く" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "閉じる(_C)" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "ウィンドウを閉じる" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "バージョン情報(_A)" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "このアプリケーションについて" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "設定(_P)..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Viewnior 用のユーザ設定" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "保存(_S)" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "変更を保存" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "壁紙に設定(_W)" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "選択画像をデスクトップ背景に設定" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "次のプログラムで開く(_W)" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "選択画像を別のアプリケーションで開く" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "削除(_D)" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "現在のファイルを削除" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "プロパティ(_P)..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "現在のファイルの情報を表示" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "再読み込み(_R)" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "現在のファイルを再読み込み" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "拡大(_Z)" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "画像を拡大" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "縮小(_O)" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "画像を縮小" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "普通サイズ(_N)" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "画像をその普通サイズで表示" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "最適(_F)" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "画像をウィンドウに合わせる" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "時計回りに回転(_C)" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "画像を時計回りに回転" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "反時計回りに回転(_A)" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "画像を反時計回りに回転" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "垂直に反転(_V)" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "画像を垂直方向に反転" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "水平に反転(_H)" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "画像を水平方向に反転" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "トリミング..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "全画面(_S)" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "全画面モードで表示" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "ウィンドウサイズを調整(_A)" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "ウィンドウサイズを画像に合わせて調整" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "メニューバー" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "ツールバー" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "ツールバーを表示" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "スライドショー(_D)" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "スライドショー モードで表示" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "前の画像(_P)" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "コレクションの前の画像に移動" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "次の画像(_N)" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "コレクションの次の画像に移動" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "最初の画像(_F)" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "コレクションの最初の画像に移動" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "最後の画像(_L)" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "コレクションの最後の画像に移動" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "カメラの型式" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "フラッシュ" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "ソフトウェア" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "説明" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "著作権表示:" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "作成者" Viewnior-viewnior-1.8/po/lt.po000066400000000000000000000354331414645621200164360ustar00rootroot00000000000000# Lithuanian translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2018-07-27 16:15+0300\n" "Last-Translator: Moo\n" "Language-Team: Lithuanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" "%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Poedit 2.0.6\n" "Language: lt\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Elegantiška paveikslų žiūryklė" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Viewnior nuostatos" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Atverti naują paveikslą naudojant: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Darbalaukis: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Glodinti pakeisto mastelio paveikslus" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Patvirtinti paveikslo ištrynimą" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Rodyti paslėptus paveikslus" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Bendra" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Rodyti kitą paveikslą po (sekundėmis): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Visada išplėsti paveikslus, kad tilptų ekrane" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Visas ekranas" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Pasukus pelės ratuką: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Spustelėjus du kartus: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Pasikeitus paveikslui: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Paveikslų naršymas dvikarčiu spustelėjimu:\n" " Spustelėjus kairėje lango pusėje rodomas ankstesnis\n" " paveikslas, spustelėjus dešinėje - kitas. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Elgsena" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Įrašius paveikslą įkelti jį iš naujo" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG kokybė:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG glaudinimas:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Įrašymas" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Apkirpti paveikslą" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Plotis: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Aukštis: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Apkirpti" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Nurodytose vietose paveikslų nėra." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Atverti naršymo langą" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Nepavyko atpažinti failo \"%s\"\n" "paveikslo failo formato" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Išmanioji veiksena" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1 veiksena" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Talpinimo į langą veiksena" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Paskutinė naudota veiksena" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Naršyti paveikslus" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Keisti paveikslo mastelį" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Slinkti paveikslą aukštyn/žemyn" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Perjungti mastelio keitimo veikseną" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Įjungti viso ekrano veikseną" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Klausti kiekvieną kartą" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Automatiškai įrašyti" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Nepaisyti pakeitimų" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Kitas" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Ankstesnis" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Paveikslo savybės" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Vieta:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Pavadinimas:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Tipas:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Dydis:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Plotis:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Aukštis:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Nėra" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Atverti pasirinktą paveikslą naudojant „%s“" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Rodyti kitą paveikslą po: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " sekundės" msgstr[1] " sekundžių" msgstr[2] " sekundžių" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Nepakanka virtualiosios atminties." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Negalima įrašyti paveikslo pakeitimų.\n" "Įrašymas šiuo formatu nepalaikomas." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Įrašyti modifikacijas?\n" "Tai perrašys paveikslą ir gali pabloginti jo kokybę!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Atverti paveikslą" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Visi paveikslai" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Visi failai" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Atverti aplanką" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Mantas Kriaučiūnas https://launchpad.net/~mantas\n" " Moo https://launchpad.net/~mooo\n" " joshas https://launchpad.net/~joshas" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Jei ištrinsite elementą, jis bus negrįžtamai prarastas." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Ar tikrai norite \n" "negrįžtamai ištrinti „%s“?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Failas" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Taisa" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Rodymas" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Paveikslas" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Eiti" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "Ž_inynas" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Atverti _paveikslą..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Atverti paveikslą" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Atverti _aplanką..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Atverti aplanką" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Užverti" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Užverti langą" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Apie" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Apie šią programą" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Nuostatos..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Viewnior naudotojo nuostatos" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "Į_rašyti" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Įrašyti pakeitimus" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Savybės" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Savybės" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Nustatyti kaip _darbalaukio foną" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Nustatyti pasirinktą paveikslą kaip darbalaukio foną" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Atverti nau_dojant" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Atverti pasirinktą paveikslą naudojant kitą programą" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Ištrinti" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Ištrinti esamą failą" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Savybės..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Rodyti informaciją apie esamą failą" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "Į_kelti iš naujo" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Įkelti esamą failą iš naujo" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Didinti" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Padidinti paveikslą" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "_Mažinti" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Sumažinti paveikslą" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Normalus dydis" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Rodyti paveikslą normaliu dydžiu" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "_Geriausias priderinimas" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Priderinti paveikslo dydį prie lango" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "_Pasukti pagal laikrodžio rodyklę" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Pasukti paveikslą pagal laikrodžio rodyklę" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Pasukti p_rieš laikrodžio rodyklę" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Pasukti paveikslą prieš laikrodžio rodyklę" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Apversti _vertikaliai" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Apversti paveikslą vertikaliai" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Apversti _horizontaliai" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Apversti paveikslą horizontaliai" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Apkirpti..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "_Visas ekranas" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Rodyti visame ekrane" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Priderinti lango dydį" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Priderinti lango dydį prie paveikslo" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Meniu juosta" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Rodyti meniu juostą" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Įrankių juosta" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Rodyti įrankių juostą" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Skai_drių rodymas" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Rodyti skaidrių rodymo veiksenoje" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Ankstesnis paveikslas" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Rodyti ankstesnį rinkinio paveikslą" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Kitas paveikslas" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Rodyti kitą rinkinio paveikslą" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Pirmas paveikslas" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Rodyti pirmąjį rinkinio paveikslą" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "Paskutinis paveiks_las" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Rodyti paskutinį rinkinio paveikslą" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Fotoaparato gamintojas" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Fotoaparato modelis" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Fotografavimo data" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Išlaikymas" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Išlaikymo veiksena" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Diafragmos reikšmė" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "ISO greitis" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Blykstė" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Matavimo veiksena" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Židinio nuotolis" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Programinė įranga" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Aprašas" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Autorių teisės" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Autorius" Viewnior-viewnior-1.8/po/meson.build000066400000000000000000000000501414645621200176040ustar00rootroot00000000000000i18n.gettext('viewnior', preset: 'glib')Viewnior-viewnior-1.8/po/nb_NO.po000066400000000000000000000335421414645621200170110ustar00rootroot00000000000000# Norwegian (Bokmål) translation for viewnior # Copyright (c) 2018 Nichlas Severinsen # This file is distributed under the same license as the viewnior package. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2018-10-08 13:00+0200\n" "PO-Revision-Date: 2018-10-08 13:20+0200\n" "Last-Translator: Nichlas Severinsen \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" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Elegant Bildeviser" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Viewnior Preferanser" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Åpne nytt bilde i: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Skrivebord: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Jevn bilder ved zooming" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Bekreft bildesletting" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Vis skjulte bilder" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Generell" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Vis neste bilde etter (i sekunder): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Tilpass bildet til skjermoppløsningen" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Fullskjerm" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Ved musehjul: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Ved dobbeltklikk: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Ved bildemodifisering: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Navigering av bilder med dobbeltklikk :\n" " Ved å trykke på venstre halvdel av vinduet vises\n" " det forrige bildet, og på høyre side - det neste. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Oppførsel" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Oppdater bildet ved lagring" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG kvalitet:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG komprimering:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Lagrer" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Beskjær Bilde" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Bredde: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Høyde: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Beskjær" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Den gitte lokasjonen inneholder ingen bilder." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Åpne navigasjonsvinduet" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Kunne ikke gjenkjenne bildeformatet\n" "for filen '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Smart Modus" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1 Modus" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Tilpass Vinduet Modus" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Sist Brukte Modus" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Naviger bilder" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Zoom bilder" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Bla bildet opp/ned" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Bytt zoom modus" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Gå inn i fullskjerm modus" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Spør hver gang" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Autolagre" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignorer forandringer" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Neste" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Forrige" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Bildeegenskaper" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Lokasjon:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Navn:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Type:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Størrelse:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Bredde:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Høyde:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Ingen" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Bruk \"%s\" for å åpne valgt bilde" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Vis neste bilde etter: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " sekund" msgstr[1] " sekunder" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Ikke nok virtuelt minne." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Bildeforandringer kan ikke bli lagret.\n" "Skriving av dette formatet er ikke støttet." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Lagre modifikasjoner?\n" "Dette vil overskrive bildet og kan redusere kvaliteten!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Åpne Bilde" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Alle Bilder" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Alle Filer" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Åpne Mappe" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Oversettere:\n" " Nichlas Severinsen https://nsz.no" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Hvis du sletter et element, blir det borte permanent." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Er du sikker på at du vil\n" "slette \"%s\" permanent?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Fil" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Rediger" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Vis" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Bilde" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Gå" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Hjelp" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Åpne _bilde..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Åpne et bilde" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Åpne _Mappe..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Åpne en Mappe" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Lukk" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Lukk Vindu" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Om" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Om denne applikasjonen" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Preferanser..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Brukerpreferanser for Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Lagre" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Lagre forandringer" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Egenskaper" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Egenskaper" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Sett som _Bakgrunn" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Sett det valgte bilde som skrivebordsbakgrunn" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Åpne _Med" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Åpne det valge bildet med en annen applikasjon" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Slett" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Slett den nåværende filen" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Egenskaper..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Vis informasjon om den nåværende filen" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Last inn på nytt" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Last inn den nåværende filen på nytt" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Zoom Inn" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Forstørr Bildet" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Zoom _Ut" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Krymp bildet" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Normal Størrelse" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Vis bildet i normal størrelse" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Best _Passform" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Tilpass bildet til vinduet" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Roter _Med klokka" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Roter bildet med klokka" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Roter _Mot klokka" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Roter bildet mot klokka" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Flip _Vertikalt" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Flip bildet vertikalt" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Flip _Horisontalt" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Flip bildet horisontalt" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Beskjær..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Full _Skjerm" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Vis i fullskjerm modus" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Juster vinduets størrelse" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Juster vindusstørrelsen for å passe bildet" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Meny" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Vis Meny" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Verktøykasse" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Vis Verktøykasse" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Bil_defremvisning" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Vis i bildefremvisnings modus" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Forrige Bilde" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Gå til det forrige bildet av samlingen" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Neste Bilde" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Gå til det neste bildet av samlingen" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Første Bilde" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Gå til det første bildet av samlingen" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Siste Bilde" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Gå til det siste bildet av samlingen" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Kamera merke" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Kamera modell" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Dato Tatt" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Eksponeringstid" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Eksponeringsmodus" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Blenderåpning" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "ISO hastighet" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Blits" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Målemodus" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Brennvidde" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Programvare" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Beskrivelse" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Opphavsrett" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Forfatter" Viewnior-viewnior-1.8/po/nl.po000066400000000000000000000342301414645621200164220ustar00rootroot00000000000000# Dutch translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2011-05-07 18:03+0000\n" "Last-Translator: Arnout Lok \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Elegante Afbeeldingsviewer" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Viewnior Voorkeuren" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Open nieuwe afbeelding in: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Smooth afbeeldingen bij zoomen" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Bevestig verwijderen van een afbeelding" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Verborgen bestanden tonen" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Algemeen" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Volgende afbeelding laten zien na (in seconden): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Afbeeldingen altijd vergroten tot de grootte van het venster" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Volledig scherm" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Bij muiswiel: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Bij dubbelklikken: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Bij bewerken van een afbeelding: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" "(!) Navigeer door afbeeldingen met dubbelklik:\n" " Klikken op de linker helft van het venster laat de vorige\n" " afbeelding zien, klikken op de rechter helft de volgende, " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Gedrag" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Afbeelding opnieuw laden bij opslaan" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG-kwaliteit:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG-compressie:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Opslaan" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Afbeelding bijsnijden" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Breedte: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Hoogte: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Bijsnijden" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "De opgegeven locaties bevatten geen afbeeldigen." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Open navigatievenster" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "Afbeeldingstype niet herkend voor bestand '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Slimme modus" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1 Modus" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Aanpassen aan Venstermodus" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Afbeeldingen Navigeren" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Inzoomen" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Afbeelding naar boven/beneden scrollen" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Zoommodus" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Schermvullend" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Elke keer vragen" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Automatisch opslaan" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Veranderingen negeren" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Volgende" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "V_orige" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Afbeeldingseigenschappen" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Locatie:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Naam:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Type:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Grootte:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Breedte:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Hoogte:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Geen" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "‘%s’ gebruiken om de geselecteerde afbeelding te openen" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Volgende afbeelding na: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " seconde" msgstr[1] " seconden" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Niet genoeg virtueel geheugen" #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Veranderingen aan afbeeldingen kunnen niet worden opgeslagen.\n" "Opslaan in dit afbeeldingstype wordt niet ondersteund." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Afbeelding openen" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Map openen" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Arnout Lok https://launchpad.net/~arnout-lok\n" " Wouter Stomp https://launchpad.net/~wouterstomp-deactivatedaccount" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Als u een item verwijdert, zal het voorgoed verloren gaan." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "Weet u zeker dat u \"%s\" permanent wil verwijderen?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Bestand" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "Be_werken" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Toon" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Afbeelding" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Ga" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Help" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Open _Afbeelding..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Open een afbeelding" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "_Map openen..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Open een map" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Sluiten" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Venster sluiten" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "Info" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Over deze toepassing" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Voorkeuren..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Gebruikersvoorkeuren voor Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Opslaan" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Wijzigingen opslaan" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Als _achtergrond instellen" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "" "De geselecteerde afbeelding als achtergrond van het bureaublad instellen" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Openen _met" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "De geselecteerde afbeelding openen met een andere toepassing" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Verwijderen" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Huidige bestand verwijderen" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Eigenschappen..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Informatie over het huidige bestand tonen" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Herladen" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Huidig bestand opnieuw laden" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Inzoomen" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Afbeelding vergroten" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "_Uitzoomen" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Afbeelding verkleinen" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Normale grootte" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Afbeelding weergeven op de normale grootte" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Best _passend" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Afbeeldingsgrootte aanpassen aan het venster" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "_Kloksgewijs Roteren" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Met de klok mee roteren" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "_Antikloksgewijs Roteren" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Tegen de klok in roteren" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "_Verticaal spiegelen" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Afbeelding verticaal spiegelen" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "_Horizontaal spiegelen" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Afbeelding horizontaal spiegelen" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Bijsnijden..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "_Volledig Scherm" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Volledig scherm" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Venstergrootte aanpassen" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Venstergrootte aanpassen aan afbeelding" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Werkbalk" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Toon werkbalk" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Slideshow" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Laten zien in slideshow" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "Vo_rige afbeelding" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Naar de vorige afbeelding in de verzameling gaan" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "V_olgende afbeelding" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Naar de volgende afbeelding in de verzameling gaan" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Eerste afbeelding" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Naar de eerste afbeelding in de verzameling gaan" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Laatste afbeelding" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Naar de laatste afbeelding in de verzameling gaan" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "" Viewnior-viewnior-1.8/po/oc.po000066400000000000000000000321271414645621200164150ustar00rootroot00000000000000# Occitan (post 1500) translation for viewnior # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2015-10-04 09:30+0000\n" "Last-Translator: Vincent L. \n" "Language-Team: Occitan (post 1500) \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: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Un visionador d'imatges elegant" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Preferéncias de Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Confirmar la supression de l'imatge" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Far veire los imatges amagats" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "General" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Cambiar l’imatge aprèp (en segondas) : " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Ecran complet" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Compòrtament" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Qualitat JPEG :" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Compression PNG :" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Enregistrament" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Retalhar l'imatge" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X : " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y : " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Largor : " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Nautor : " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Retalhar" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Los emplaçaments indicats contenon pas d'imatge." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Mòde intelligent" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Mòde 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Zoom sus l'imatge" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Demandar cada còp" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Enregistrament automatic" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignorar los cambiaments" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Seguent" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Precedent" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Proprietats de l'imatge" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Emplaçament :" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Nom :" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Tipe :" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Talha :" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Largor :" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Nautor :" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Pas cap" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Utilizar « %s » per dobrir l'imatge seleccionat" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "" #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " segonda" msgstr[1] " segondas" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "" #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Dobrir un imatge" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Imatges" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Fichièrs" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Dobrir un dorsièr" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cédric VALMARY (Tot en òc) https://launchpad.net/~cvalmary\n" " Vincent L. https://launchpad.net/~vincent-laporte" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Se suprimissètz un element, serà perdut per totjorn." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Fichièr" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "E_dicion" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Afichatge" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Imatge" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Començar" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Ajuda" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Dobrir un _Imatge..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Dobrir un Imatge" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Dobrir un _dorsièr..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Tampar" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Tampa la fenèstra" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_A prepaus" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "A prepaus d'aquesta aplicacion" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Preferéncias..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Enregistrar" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Enregistrar las modificacions" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Definir l'imatge seleccionat coma fons de burèu" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Dobrir _amb" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Dobrir l'imatge seleccionat amb una autra aplicacion" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Suprimir" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Proprietats..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Aficha las informacions a prepaus del fichièr actual" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Recargar" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Zoom avant" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Agrandir l'imatge" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Zoo_m arrièr" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Reduire l'imatge" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Aficha l'imatge a sa talha normala" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Ajustar pel melhor" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Adapta la talha de l'imatge a la de la fenèstra" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Miralh _vertical" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Miralh _vertical de l'imatge" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Miralh _orizontal" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Miralh _orizontal de l'imatge" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Decopar..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Barra d'aisinas" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Afichar la barra d'aisinas" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Diaporama" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "Imatge _precedent" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Anar a l'imatge precedent de la colleccion" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "Imatge _seguent" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Anar a l'imatge seguent de la colleccion" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Primièr imatge" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Anar al primièr imatge de la colleccion" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Darrièr imatge" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Anar al darrièr imatge de la colleccion" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "" Viewnior-viewnior-1.8/po/pl.po000066400000000000000000000351431414645621200164300ustar00rootroot00000000000000# Polish translation for viewnior # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2016-02-19 19:52+0000\n" "Last-Translator: ereao_eash \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Elegancka Przeglądarka Obrazów" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Preferencje" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Otwórz nowy obraz za pomocą: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Pulpit: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Wygładzaj obrazy podczas powiększania" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Potwierdź usunięcie obrazu" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Pokaż ukryte obrazy" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Ogólne" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Pokaż następny obraz po upływie (w sekundach): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Zawsze skaluj obrazy do optymalnego rozmiaru" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Pełny ekran" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Kółko myszy: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Podwójne kliknięcie: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Modykifowanie obrazu: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Przełączanie obrazów dwukrotnym kliknięciem\n" " Klikanie na lewej połowie okna pokazuje\n" " poprzedni obraz, klikanie na prawej pokazuje następny. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Zachowanie" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Przeładuj obraz podczas zapisywania" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Jakość JEPG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Kompresja PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Zapisywanie" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Przytnij obraz" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "Oś X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Oś Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Szerokość: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Wysokość: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Przytnij" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Podane położenie nie zawiera obrazów." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Otwórz okno przeglądania plików" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Nie można rozpoznać typu pliku:\n" "'%s\"" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Sprytny Tryb" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Skala 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Dopasuj do okna" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Ostatnio używany tryb" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Przeglądaj obrazy" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Powiększ obraz" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Przewiń obwaz w górę/dół" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Zmień tryb powiększania" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Pełny ekran" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Pytaj za każdym razem" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Automatyczny zapis" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Zignoruj zmiany" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Następny" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Poprzedni" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Właściwości obrazu" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Położenie:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Nazwa:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Typ:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Rozmiar:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Szerokość:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Wysokość:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Brak" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Użyj \"%s\" do otworzenia zaznaczonego obrazu" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Pokaż następny obraz po upływie: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " sekunda" msgstr[1] " sekundy" msgstr[2] " sekund" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Brak wystarczającej ilości pamięci wirtualnej." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Modyfikacje obrazu nie mogą zostać zapisane.\n" "Zapisywanie w tym formacie nie jest wspierane." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Czy zapisać zmiany?\n" "Spowoduje to nadpisanie obrazu i może negatywnie wpłynąć na jego jakość!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Otwórz obraz" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Wszystkie obrazy" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Wszystkie Pliki" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Otwórz katalog" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Adam Maćkowiak https://launchpad.net/~admc\n" " ereao_eash https://launchpad.net/~coronzon88" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Usunięcie elementu spowoduje jego bezpowrotną utratę." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Czy na pewno chcesz usunąć\n" "obraz \"%s\"?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Plik" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Edycja" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Widok" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Obraz" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "Przej_dź" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "Pomo_c" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "O_twórz obraz..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Otwórz obraz" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Otwórz _katalog..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Otwórz katalog" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Zamknij" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Zamknij okno" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "O P_rogramie" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "O tym programie" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "Pre_ferencje..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Preferencje użytkownika" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "Zapi_sz" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Zapisz zmiany" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Preferencje" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Właściwości" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Ustaw jako _tapetę" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Ustaw wybrany obraz jako tło pulpitu" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Otwórz za po_mocą" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Otwiera zaznaczony obraz za pomocą innego programu" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Usuń" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Usuń bierzący plik" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Właściwości" #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Wyświetla informacje na temat bieżącego pliku" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "W_czytaj ponownie" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Wczytaj ponownie bierzący plik" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "Pow_iększ" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Powiększa obraz" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Z_mniejsz" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Zmniejsza obraz" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "Or_yginalny rozmiar" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Wyświetla obraz w naturalnej wielkości" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "_Dopasuj" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Dopasowuje obraz do okna" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "O_bróć zgodnie z ruchem wskazówek zegara" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Obraca obraz zgodnie z ruchem wskazówek zegara" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Obróć przeciw_nie do ruchu wskazówek zegara" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Obraza obraz przeciwnie do ruchu wskazówek zegara" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Odwróc w p_ionie" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Odwraca obraz w pionie" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Odwróć w p_oziomie" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Odwraca obraz poziomo" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Przytnij..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Pełn_y ekran" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Pokazuje obraz w trybie pełnoekranowym" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "Dopasuj rozmiar o_kna" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Dopasowuje rozmiar okna do obrazu" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Pasek Menu" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Pokaż pasek menu" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Pasek narzędzi" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Pokaż pasek narzędzi" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Pokaz _slajdów" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Pokazuje obrazy w trybie pokazu slajdów" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Poprzedni obraz" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Przechodzi do poprzedniego obrazu w kolekcji" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Następny obraz" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Przechodzi do następnego obrazu w kolekcji" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "Pier_wszy obraz" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Przechodzi do pierwszego obrazu w kolekcji" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Ostatni obraz" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Przechodzi do ostatniego obrazu w kolekcji" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Producent aparatu" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Model aparatu" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Data wykonania" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Czas naświetlania" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Tryb naświetlania" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Wartość przysłony" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "Czułość ISO" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Lampa błyskowa" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Tryb pomiaru odległości" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Ogniskowa" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Oprogramowanie" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Opis" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Prawa autorskie" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Autor(zy)" Viewnior-viewnior-1.8/po/pt.po000066400000000000000000000340531414645621200164370ustar00rootroot00000000000000# Portuguese translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2012-07-26 13:12+0000\n" "Last-Translator: Sérgio Marques \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Visualizador de imagens elegante" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Preferências do Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Abrir nova imagem em: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Suavizar imagens aumentadas" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Confirmar eliminação da imagem" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Mostrar imagens ocultas" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Geral" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Mostrar imagem seguinte após (segundos): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Expandir sempre as imagens para ajustar ao ecrã" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Ecrã completo" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Com a roda do rato " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Com dois cliques: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Ao modificar a imagem: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" "(!) Explorar imagens com dois cliques :\n" " Clique na metade esquerda da janela para mostrar a\n" " imagem anterior e na metade direita para mostrar a seguinr. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Comportamento" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Ao gravar, recarregar imagem" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Qualidade JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Compressão PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "A gravar" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Cortar imagem" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Largura: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Altura: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Cortar" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "As localizações indicadas não possuem imagens." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Abrir janela de navegação" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "O formato do ficheiro da imagem de\n" "%s não foi reconhecido." #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Modo inteligente" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Modo 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Modo de ajuste à janela" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Explorar imagens" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Ampliar imagem" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Mover imagem para cima/baixo" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Trocar modo de ampliação" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Entrar no modo de ecrã completo" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Perguntar sempre" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Gravação automática" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignorar modificações" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Seguinte" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Anterior" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Propriedades da imagem" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Localização:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Nome:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Tipo:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Tamanho:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Largura:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Altura:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Nenhum" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Utilizar \"%s\" para abrir a imagem selecionada" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Mostrar imagem seguinte após: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " segundo" msgstr[1] " segundos" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Memória virtual insuficiente." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "As alterações à imagem não foram gravadas.\n" "A escrita neste formato não é suportada." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Abrir imagem" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Abrir pasta" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Sérgio Marques https://launchpad.net/~sergio+marques\n" " asensio https://launchpad.net/~asensio" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Se eliminar um item, este não poderá ser recuperado." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Tem a certeza que quer\n" "eliminar \"%s\" permanentemente?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Ficheiro" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Editar" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Ver" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Imagem" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Ir" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "Aj_uda" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Abrir _imagem..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Abrir uma imagem" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Abrir _pasta..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Abrir uma pasta" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "Fe_char" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Fechar janela" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Sobre" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Sobre esta aplicação" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Preferências..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Preferências do utilizador para o Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Gravar" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Gravar alterações" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "_Definir como papel de parede" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Definir imagem selecionada como fundo da área de trabalho" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Abrir _com" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Abrir imagem selecionada com outra aplicação" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Eliminar" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Eliminar ficheiro atual" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Propriedades..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Mostrar informações do ficheiro atual" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Recarregar" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Recarregar ficheiro atual" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Ampliar" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Ampliar a imagem" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Reduzir" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Reduzir a imagem" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "Tamanho _normal" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Mostrar imagem no seu tamanho normal" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Melhor _ajuste" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Ajustar a imagem à janela" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Rodar à _direita" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Rodar imagem para a direita" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Rodar à _esquerda" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Rodar imagem para a esquerda" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Inverter na _vertical" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Inverter a imagem na vertical" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Inverter na _horizontal" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Inverter a imagem na horizontal" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Cortar..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Ecrã _completo" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Mostrar no modo de ecrã completo" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Ajustar tamanho da janela" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Ajustar tamanho da janela à imagem" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Barra de ferramentas" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Mostrar barra de ferramentas" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Apre_sentação" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Mostrar no modo de apresentação" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "Imagem _anterior" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Ir para a imagem anterior da galeria" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "Imagem _seguinte" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Ir para a imagem seguinte da galeria" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Primeira imagem" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Ir para a primeira imagem da galeria" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "Úl_tima Imagem" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Ir para a última imagem da galeria" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "" Viewnior-viewnior-1.8/po/pt_BR.po000066400000000000000000000342421414645621200170220ustar00rootroot00000000000000# Brazilian Portuguese translation for viewnior # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2010-06-03 00:42+0000\n" "Last-Translator: Gustavo Guidorizzi \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Visualizador de imagens elegante" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Preferências do Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Abrir nova imagem em: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Suavizar imagens ao ampliar" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Confirmar a exclusão da imagem" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Mostrar imagens ocultas" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Geral" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Mostrar a imagem seguinte, depois (em segundos): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Sempre ampliar as imagens para ajustar-se a tela" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Tela cheia" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Ao usar a roda do mouse: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Ao clicar duas vezes: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Ao modificar a imagem: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Usar duplo clique para navegar pelas imagens :\n" " Ao se clicar na metade esquerda da tela é mostrada a\n" " imagem anterior, e no lado direito - a próxima. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Comportamento" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Recarregar a imagem ao salvar" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Qualidade JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Compressão PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Salvando" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Cortar imagem" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Largura: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Altura: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Cortar" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Os locais informados não contêm imagens." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Abrir a janela do navegador" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Não foi possível reconhecer o formato\n" "do arquivo de imagem '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Modo inteligente" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Modo 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Mode de Ajuste à Janela" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Navegar pelas imagens" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Zoom" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Rolar imagem para cima/para baixo" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Alterar modos de zoom" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Entra em modo tela cheia" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Sempre perguntar" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Salvar automaticamente" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignorar as alterações" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Próximo" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Anterior" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Propriedades da imagem" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Localização:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Nome:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Tipo:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Tamanho:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Largura:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Altura:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Nenhum" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Usar \"%s\" para abrir o item selecionado" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Mostrar próxima imagem depois de: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " segundo" msgstr[1] " segundos" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Sem memória virtual suficiente." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "As modificações na imagem não puderam ser salvas.\n" "Não há suporte para gravação neste formato." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Abrir imagem" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Abrir Pasta" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Gustavo Guidorizzi https://launchpad.net/~gguido\n" " irtigor https://launchpad.net/~irtigor" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Se você excluir um item, este será perdido para sempre." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Você tem certeza de que deseja\n" "apagar permanentemente \"%s\"?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Arquivo" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Editar" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Visualizar" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Imagem" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Ir" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Ajuda" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Abrir _imagem..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Abrir uma imagem" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Abrir _pasta..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Abrir uma pasta" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Fechar" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Fechar janela" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Sobre" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Sobre este aplicativo" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Preferências..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Preferências do usuário para o Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Salvar" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Salvar alterações" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Usar como Pape_l de Parede" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Usar a imagem selecionada como plano de fundo da área de trabalho" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Abrir _Com" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Abrir imagem selecionada com um aplicativo diferente" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "E_xcluir" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Excluir o arquivo atual" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Propriedades..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Mostrar informações sobre o arquivo atual" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Recarregar" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Recarregar o arquivo atual" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "A_mpliar" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Aumenta a imagem" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Redu_zir" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Encolhe a imagem" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "Tamanho _Normal" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Mostrar a imagem em seu tamanho normal" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "_Melhor ajuste" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Ajusta a imagem à janela" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Girar em Sentido _Horário" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Girar imagem em sentido horário" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Girar _em Sentido Anti-Horário" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Girar imagem em sentido anti-horário" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Espelhar _Verticalmente" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Espelha a imagem verticalmente" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Espelhar _Horizontalmente" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Espelha a imagem horizontalmente" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Cortar..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Tela _Cheia" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Mostrar em tela cheia" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Ajustar tamanho da janela" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Alterar tamanho da janela para se ajustar à imagem" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Barra de Ferramentas" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Exibir Barra de Ferramentas" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Show de Slides" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Mostrar no modo de show de slides" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "Imagem _Anterior" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Vá para a imagem anterior da coleção" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Próxima Imagem" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Vá para a próxima imagem da coleção" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Primeira Imagem" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Vá para a primeira imagem da coleção" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Última Imagem" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Vá para a última imagem da coleção" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "" Viewnior-viewnior-1.8/po/ru.po000066400000000000000000000432361414645621200164450ustar00rootroot00000000000000# Russian translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior-1.4\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2014-02-19 06:28+0000\n" "Last-Translator: Kyrill Detinov \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" "Language: ru\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Изящный просмотрщик изображений" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Параметры Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Открыть новое изображение в: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Среда рабочего стола: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Сглаживать изображение при масштабировании" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Подтверждение удаления изображения" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Показать скрытые изображения" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Общие" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Показывать следующее изображение через (в секундах): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Всегда подгонять изображение к окну" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Полный экран" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Колесо мышки: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Двойной клик мышкой: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "При изменении изображения: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Просмотр изображений с помощью двойного клика:\n" " Клик на левой половине изображения показывает\n" " предыдущее изображение, а на правой стороне - следующее. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Поведение" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Перезагрузить изображение после сохранения" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Качество JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Сжатие PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Сохранение" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Обрезать изображение" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Ширина: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Высота: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Обрезать" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Эта папка не содержит изображений." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Открыть окно навигации" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Не получается распознать формат\n" "файла '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "умном режиме" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "в режиме 1 к 1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "режиме подгонки к окну" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "последнем использовавшемся режиме" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "навигация по изображениям" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "увеличить изображение" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Прокрутка изображения вверх/вниз" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "переключиться в режим лупы" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "переключиться в полноэкранный режим" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "спрашивать каждый раз" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "автоматически сохранять" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "игнорировать изменения" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Следующее" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Предыдущее" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Свойства изображения" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Источник:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Название:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Тип:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Размер:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Ширина:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Высота:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Нет" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Используйте \"%s\" для открытия выбранного изображения" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Показать следующее изображение через: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " секунда" msgstr[1] " секунды" msgstr[2] " секунд" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Недостаточно виртуальной памяти." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Не могу сохранить изменённое изображение.\n" "Сохранение в этом формате не поддерживается." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Сохранить изменения?\n" "Это перезапишет изображение и может ухудшить качество!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Открыть изображение" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Все изображения" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Все файлы" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Открыть папку" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alexei https://launchpad.net/~jleexa\n" " HsH https://launchpad.net/~hsh\n" " Kolesnikov Dmitrij https://launchpad.net/~virusmater\n" " Kyrill Detinov https://launchpad.net/~lazy-kent\n" " Sergey Sedov https://launchpad.net/~serg-sedov\n" " andyun https://launchpad.net/~pokazsch\n" " mrakobes86 https://launchpad.net/~mrakobes86\n" " stroncium https://launchpad.net/~yanis-benson\n" " Денис Крюков https://launchpad.net/~dk4485" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Если вы удалите изображение, то оно будет полностью утрачено." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Вы уверены в том, что\n" "хотите удалить \"%s\"?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Файл" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "П_равка" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Вид" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Изображение" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "П_ереход" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Справка" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Открыть _изображение…" #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Открыть изображение" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Открыть папку…" #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Открыть папку" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Закрыть" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Закрыть окно" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_О программе" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "О программе" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Параметры…" #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Параметры пользователя для Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Сохранить" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Сохранить изменения" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Свойства" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Свойства" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Сделать фоном рабочего стола" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Установить выделенное изображение фоном рабочего стола" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Открыть _в" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Открыть выделенное изображение в другом приложении" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Удалить" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Удалить текущий файл" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "С_войства…" #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Показать информацию о текущем файле" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Обновить" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Обновить текущий файл" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Увеличить" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Увеличить изображение" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "У_меньшить" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Уменьшить изображение" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "1 : 1" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Показать изображение в его нормальном масштабе" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Наилучшее _заполнение" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Масштабировать картинку под размер окна" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Повернуть _по часовой стрелке" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Повернуть картинку по часовой стрелке" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Повернуть п_ротив часовой стрелки" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Повернуть изображение против часовой стрелки" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Отразить по _вертикали" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Отразить изображение по вертикали" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Отразить по _горизотали" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Отразить изображение по горизонтали" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Обрезать…" #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Полный экран" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Перейти в полноэкранный режим" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Изменить размер окна" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Изменить размер окна под размер изображения" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Панель меню" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Показать панель меню" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Панель инструментов" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Показать панель инструментов" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Сл_айдшоу" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Показать в режиме слайдошу" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Предыдущее изображение" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Перейти к предыдущему изображению" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Следующее изображение" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Перейти к следующему изображению" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "П_ервое изображение" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Перейти к первому изображению" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "П_оследнее изображение" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Перейти к последнему изображению" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Производитель" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Модель камеры" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Дата съёмки" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Время экспозиции" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Режим экспозиции" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Диафрагма" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "Светочувствительность" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Вспышка" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Режим замера" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Фокусное расстояние" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Программа" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Описание" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Авторские права" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Автор" Viewnior-viewnior-1.8/po/sk.po000066400000000000000000000327111414645621200164300ustar00rootroot00000000000000# Slovak translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2010-04-17 23:13+0000\n" "Last-Translator: Roman Horník \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Elegantný prehliadač obrázkov" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Nastavenie Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Otvoriť nový obrázok v: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Pri zväčšovaní vyhladiť obrázok" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Potvrdiť zmazanie obrázka" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Zobraziť skryté obrázky" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Všeobecné" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Zobraziť ďalší obrázok po (v sekundách): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Vždy prispôsobiť veľkosť obrázka oknu" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Celá obrazovka" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Pri otočení kolieskom myši: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Pri dvojkliku: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Pri úprave obrázka: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Navigácia v obrázkoch pomocou dvojkliku:\n" " Kliknutím na ľavú polovicu okna bude zobrazený obrázok\n" " predchádzajúci, kliknutím na pravú polku potom obrázok nasledujúci. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Chovanie" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Kvalita JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG kompresia:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Ukladá sa" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Orezanie obrázka" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Šírka: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Výška: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Orezanie" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Zadané miesto neobsahuje obrázky." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Chytrý režim" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Režim 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Zväčšiť obrázok" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Spustiť režim celej obrazovky" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Vždy sa opýtať" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Automatické ukladanie" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignorovať zmeny" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Nasledujúci" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Predchádzajúci" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Vlastnosti obrázka" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Umiestnenie:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Názov:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Typ:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Veľkosť:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Šírka:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Výška:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Žiadne" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Použiť \"%s\" na otvorenie vybraného obrázku" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Zobraziť ďalší obrázok za: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " sekunda" msgstr[1] " sekundy" msgstr[2] " sekúnd" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Nie je dostatok virtuálnej pamäti." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Otvoriť obrázok" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Otvoriť priečinok" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Roman Horník https://launchpad.net/~roman.hornik" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Ak odstránite položku, bude nenávratne stratená." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Súbor" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Upraviť" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Zobraziť" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Obrázok" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Prejsť" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "Po_moc" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Otvoriť _obrázok" #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Otvoriť obrázok" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Otvoriť _priečinok..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Otvoriť priečinok" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "Za_tvoriť" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Zatvoriť okno" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "O _aplikácii" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "O tejto aplikácii" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Predvoľby..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Uložiť" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Uložiť zmeny" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Vybraný obrázok nastaví ako pozadie plochy" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Otvoriť _pomocou" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Otvoriť vybraný obrázok inou aplikáciou" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Odstrániť" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Vlastnosti..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Zobraziť informácie o aktuálnom súbore" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Obnoviť" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Zväčšiť" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Zväčšiť obrázok" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Zm_enšiť" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Zmenšiť obrázok" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Normálna veľkosť" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Zobraziť obrázok v jeho pôvodnej veľkosti" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Pr_ispôsobiť" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Prispôsobiť obrázok veľkosti okna" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Preklopiť z_visle" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Preklopiť z_visle" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Preklopiť v_odorovne" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Preklopiť v_odorovne" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Orez..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Panel nástrojov" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Zobraziť panel nástrojov" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Predchádzajúci obrázok" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Prejsť na predchádzajúci obrázok v zbierke" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Nasledujúci obrázok" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Prejsť na nasledujúci obrázok v zbierke" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "P_rvý obrázok" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Prejsť na prvý obrázok v zbierke" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "Po_sledný obrázok" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Prejsť na posledný obrázok v zbierke" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "" Viewnior-viewnior-1.8/po/sr.po000066400000000000000000000413421414645621200164370ustar00rootroot00000000000000# Serbian translation for viewnior # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the viewnior package. # Мирослав Николић , 2011—2016. msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2016-02-08 00:31+0000\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian \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: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" "Language: sr\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Вјувниор" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Елегантан прегледач слика" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Пооставке Вјувниора" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Отвори нову слику у: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Радна површ: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Улепшај слике при увећању" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Потврди брисање слике" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Прикажи скривене слике" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Опште" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Прикажи следећу слику након (секунде): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Увек развуци слике преко целог екрана" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Цео екран" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Точкићем миша: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "На двоструки притисак: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Након измене слике: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Два пута притисните да промените слику :\n" "на левој половини прозора за преглед претходне слике\n" "а на десној половини за преглед следеће слике. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Понашање" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Након чувања поново учитај слику" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "ЈПЕГ квалитет:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "ПНГ сажимање:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Чување" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Исеците слику" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Ширина: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Висина: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Исеци" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Наведена путања не садржи слике." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Отвори прозор навигатора" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Не могу да препознам запис датотеке\n" "слике за датотеку „%s“" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "паметном режиму" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "пуној величини" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "пуном прозору" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "последњем коришћеном режиму" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Прегледај слике" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Увеличај слику" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Померај слику горе/доле" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Изабери режим увеличања" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Пређи на цео екран" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Питај ме сваки пут" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Сам сачувај" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Занемари измене" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Следећа" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Претходна" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Својства слике" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Путања:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Назив:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Врста:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Величина:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Ширина:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Висина:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Ништа" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Користи „%s“ за отварање изабране слике" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Прикажи следећу слику након: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " секунде" msgstr[1] " секунде" msgstr[2] " секунди" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Нема довољно виртуелне меморије." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Не могу да сачувам измене слике.\n" "Није подржан упис у изабраном запису." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Да сачувам измене?\n" "Ово ће преписати слику а може и да умањи њен квалитет!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Отворите слику" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Све слике" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Све датотеке" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Отворите фасциклу" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Мирослав Николић https://launchpad.net/~lipek\n" " Никола Радовановић https://launchpad.net/~nikoola" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Ако обришете ставку, она ће бити неповратно изгубљена." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Да ли сигурно желите да\n" "трајно уклоните „%s“?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Датотека" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Уређивање" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Преглед" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Слика" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Иди" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "По_моћ" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Отвори _слику..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Отворите слику" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Отвори _фасциклу..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Отворите фасциклу" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Затвори" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Затворите прозор" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_О програму" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "О овом програму" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Поставке..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Корисничке поставке Вјувниора" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Сачувај" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Сачувајте измене" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Својства" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Својства" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Постави као _позадину" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Поставите изабрану слику као позадину радне површи" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Отвори _програмом" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Отворите изабрану слику другим програмом" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Обриши" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Обришите текућу датотеку" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Својства..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Прикажите податке о текућој датотеци" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Освежи" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Поново учитајте текућу датотеку" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "У_већај" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Увећајте слику" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "У_мањи" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Умањите слику" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Уобичајена величина" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Прикажите слику у њеној пуној величини" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "_Најбоље уклапање" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Прилагодите слику величини прозора" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Окрени на _десно" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Окрените слику на десно" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Окрени на _лево" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Окрените слику на лево" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Изврни _усправно" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Изврните слику усправно" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Изврни _водоравно" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Изврните слику водоравно" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Исеци..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Преко целог _екрана" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Прикажите преко целог екрана" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Подеси величину прозора" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Подесите величину прозора како би у њега стала слика" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Трака изборника" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Прикажите траку изборника" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Трака алата" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Прикажите траку алата" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Покретни приказ" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Прикажите у режиму покретног приказа" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Претходна слика" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Идите на претходну слику у збирци" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Следећа слика" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Идите на следећу слику у збирци" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "П_рва слика" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Идите на прву слику у збирци" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "П_оследња слика" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Идите на последњу слику у збирци" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Произвођач фото-апарата" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Модел фото-апарата" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Датум сликања" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Време изложености" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Режим изложености" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Вредност бленде" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "ИСО брзина" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Блиц" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Режим мерења" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Жижна даљина" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Софтвер" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Опис" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Ауторска права" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Аутор" Viewnior-viewnior-1.8/po/sv.po000066400000000000000000000342561414645621200164510ustar00rootroot00000000000000# Swedish translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2016-05-03 01:36+0000\n" "Last-Translator: Påvel Nicklasson \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" "Language: sv\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Elegant bildvisare" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Inställningar för Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Öppna ny bild i: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Skrivbord: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Mjuka upp bilder vid zoomning" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Bekräfta bildborttagning" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Visa dolda bilder" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Allmänt" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Visa nästa bild efter (i sekunder): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Förstora alltid bilder för att passa skärmen" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Helskärm" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Vid musrullning: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Vid dubbelklick: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Vid bildändringar: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Navigera bland bilder med dubbelklick :\n" " Klicka på vänstra delen av fönstret för att visa föregående\n" " bild och på den högra sidan för nästa bild. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Beteende" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Läs om bild vid sparande" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG-kvalitet:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG-komprimering:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Sparar" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Beskär bild" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Bredd: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Höjd: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Beskär" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "De angivna platserna innehåller inga bilder." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Öppna navigatorfönstret" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Kunde inte känna igen bildfilens\n" "format för filen \"%s\"" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Smart läge" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1-läge" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Anpassa till fönster" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Senast använt läge" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Navigera bland bilder" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Zooma bild" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Rulla bilden upp/ned" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Växla zoomlägen" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Gå in i helskärmsläge" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Fråga varje gång" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Spara automatiskt" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Ignorera ändringar" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Nästa" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Föregående" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Bildegenskaper" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Plats:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Namn:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Typ:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Storlek:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Bredd:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Höjd:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Ingen" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Använd \"%s\" för att öppna den markerade bilden" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Visa nästa bild efter: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " sekund" msgstr[1] " sekunder" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Det finns inte tillräckligt mycket virtuellt minne." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Bildändringar kan inte sparas.\n" "Skrivning i detta format stöds inte." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Spara ändringar?\n" "Detta kommer att skriva över bilden och kan reducera dess kvalitet!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Öppna bild" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Alla bilder" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Alla filer" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Öppna mapp" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Daniel Nylander https://launchpad.net/~yeager\n" " Påvel Nicklasson https://launchpad.net/~paveu" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Om du tar bort ett objekt kommer det att försvinna för alltid." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Är du säker på att du vill\n" "permanent ta bort \"%s\"?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Arkiv" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "R_edigera" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Visa" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Bild" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Gå" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Hjälp" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Öppna _bild..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Öppna en bild" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Öppna ma_pp..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Öppna en mapp" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "S_täng" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Stäng fönster" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Om" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Om detta program" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Inställningar..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Användarinställningar för Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Spara" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Spara ändringar" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "Egenska_per" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Egenskaper" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Ställ in som skrivbordsbak_grund" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Ange markerad bild som skrivbordsbakgrund" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Öppna _med" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Öppna markerad bild med ett annat program" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Ta bort" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Ta bort den aktuella filen" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Egenskaper..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Visa information om den aktuella filen" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Uppdatera" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Läs om den aktuella filen" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Zooma in" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Förstora bilden" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "Zooma _ut" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Förminska bilden" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Normal storlek" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Visa bilden i sin normala storlek" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Bästa _passning" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Anpassa bilden till fönstret" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Rotera _medsols" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Rotera bilden medsols" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Rotera m_otsols" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Rotera bilden motsols" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Vänd _vertikalt" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Vänd bilden vertikalt" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Vänd _horisontellt" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Vänd bilden horisontellt" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Beskär..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Hel_skärm" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Visa i helskärmsläge" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Justera fönsterstorleken" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Justera fönsterstorleken för att passa bilden" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Menyrad" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Visa menyrad" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Verktygsrad" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Visa verktygsrad" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Bildspel" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Visa i bildspelsläge" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "Fö_regående bild" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Gå till föregående bild i samlingen" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Nästa bild" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Gå till nästa bild i samlingen" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_Första bilden" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Gå till första bilden i samlingen" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Sista bilden" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Gå till sista bilden i samlingen" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Kameramärke" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Kameramodell" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Taget datum" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Expineringstid" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Exponeringssätt" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Bländarvärde" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "ISO-hastighet" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Blixt" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Mätläge" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Bränmnvidd" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Mjukvara" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Beskrivning" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Copyright" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Författare" Viewnior-viewnior-1.8/po/tr.po000066400000000000000000000335171414645621200164450ustar00rootroot00000000000000# Turkish translation for viewnior # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2010-06-13 17:07+0000\n" "Last-Translator: nordstern \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Zarif Resim Gösterici" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Viewnior Seçenekleri" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Yeni resmi aç: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "_" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Resim silmeyi onayla" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Gizli resimleri göster" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Genel" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Sonraki resme geçiş süresi: " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Her zaman resmi ekran boyutuna genişlet" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "Tam ekran" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "Fare orta tuşuna basıldığında: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "Çift tıklama: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "Resim Değiştirildiğinde: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Resimlerin çift tıklama ile değişmesi için:\n" " Pencerenin sol kısmına tıklarsanız önceki resme,\n" " Sağ kısmına tıklarsanız sonraki resme geçecektir. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Davranış" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Resmi kayıt ettikten sonra yeniden yükle" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG kalitesi:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG sıkıştırması:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Kaydediliyor" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Resmi Kırp" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Genişlik: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Yükseklik: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Kırp" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Verilen yerler hiçbir görüntü içermiyor." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Dosya tarayıcısını aç" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "'%s' dosya biçimi tanınmıyor." #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Akıllı Kip" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1 Oran" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "Pencereye Sığdır" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Resimleri Arasında Gezin" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Resmi büyüt" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Resmi aşağı/yukarı kaydır" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Yakınlaştırma türünü değiştir" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Tam ekran kipine gir" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Her zaman sor" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Otomatik kaydet" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Değişiklikleri yoksay" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Sonraki" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Önceki" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Resim Özellikleri" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Konum:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "İsim:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Tür:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Boyut:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Genişlik:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Yükseklik:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Hiçbiri" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Seçilen resmi açmak için \"%s\" kullan" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Ardından resmi göster: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " saniye" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Yetersiz sanal bellek" #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Resim üzerinde yapılan değişiklikler uygulanamadı.\n" "Bu dosya türünde kayıt yapılamıyor." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Resim Aç" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Dizin Aç" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " nordstern https://launchpad.net/~deran-delice" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Eğer bir öğeyi silerseniz, kalıcı olarak kaybolacak." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "\"%s\" dosyasını kalıcı olarak silmek\n" " isstediğinize emin misiniz ?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Dosya" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Düzenle" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Görünüm" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Resim" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "_Git" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Yardım" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "_Resim Aç" #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Bir resim dosyası aç" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "_Klasör Aç..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Bir dizin aç" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Kapat" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Pencereyi kapat" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Hakkında" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Bu uygulama hakkında" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Tercihler" #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Viewnior için kullanıcı ayarları" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Kaydet" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Değişiklikleri kaydet" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "_Arkaplan olarak ayarla" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Seçilmiş görüntüyü masaüstü artalanı olarak ayarla" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "İl_e Aç" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Seçilen resmi başka bir uygulama ile birlikte aç" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "_Sil" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Bu dosyayı sil" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Özellikler..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Güncel dosya bilgisini göster" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "_Yenile" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Dosyayı yeniden yükle" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "_Yakınlaştır" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Resmi genişlet" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "_Uzaklaştır" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Resmi daralt" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Normal Boyut" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Resmi normal boyutunda göster" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Tam _Sığdır" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Resmi pencereye uydur" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "_Saat Yönünde Döndür" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Resmi saat yönünde döndür" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "_Saat Yönünün Tersine Döndür" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Resmi saat yönünün tersine döndür" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Dikey Çe_vir" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Görüntüyü dikey olarak çevir" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Yatay Ç_evir" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Görüntüyü yatay olarak çevir" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Kırp..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Tam _Ekran" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Tam ekran kipinde görüntüle" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Pencere boyutunu ayarla" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Pencere boyutunu resim boyutuna uydur" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Araç çubuğu" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Araç Çubuğunu Göster" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "_Slayt Gösterisi" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Slayt gösterisi olarak görüntüle" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Önceki Resim" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Kolleksiyondaki bir önceki resme git" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Sonraki Resim" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Kolleksiyondaki bir sonraki resme git" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "_İlk Resim" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Koleksiyondaki ilk resme git" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Son Resim" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Koleksiyondaki son resme git" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "" Viewnior-viewnior-1.8/po/uk.po000066400000000000000000000433721414645621200164370ustar00rootroot00000000000000# Ukrainian translation for viewnior # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2015-10-15 19:44+0000\n" "Last-Translator: Max Lyashuk aka Ma)(imuM \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "Елегантний переглядач зображень" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Налаштування Viewnior" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "Відкрити нове зображення в: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "Стільниця: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "Зглажувати зображення при збільшенні" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "Запит підтвердження видалення зображення" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "Показувати приховані зображення" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "Загальне" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "Переходити до наступного зображення після (в сек.): " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "Завжди збільшувати зображення до розміру екрана" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "На ввесь екран" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "При прокрутці мишею " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "При подвійному натисканні: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "При редагуванні зображення: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) Навігація зображень з подвійним натисканням клавіші миші :\n" " При натисканні на ліву половину вікна показує\n" " попереднє зображення і на правій стороні - наступне. " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "Поведінка" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "Оновити зображення при збереженні" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "Якість JPEG:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "Стиснення PNG:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "Збереження" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "Обрізати зображення" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "Ширина: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "Висота: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "Обрізати" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "Вказані місця не містять зображень." #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "Відкрити вікно навігатора" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "Не вдалося розпізнати графічний файл\n" "формат файлу '%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "Інтелектуальний режим" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "Режим 1:1" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "За розміром вікна" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "Режим останнього використання" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "Переходити на наступне зображення" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "Збільшити зображення" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "Прокручувати зображення вгору/вниз" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "Змінити масштаб" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "Перейти до повноекранного режиму" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "Запитувати кожного разу" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "Автозбереження" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "Незважати на зміни" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "_Наступне" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "_Попереднє" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "Властивості зображення" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "Розташування:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "Назва:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "Тип:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "Розмір:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "Ширина:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "Висота:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "Нічого" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "Використовувати \"%s\" для відкривання виділеного зображення" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "Перейти до наступного зображення після: " #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " секунда" msgstr[1] " секунди" msgstr[2] " секунд" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "Не вистачає віртуальної пам'яті." #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "Зміни зображення не можуть бути збережені.\n" "Запис в цьому форматі не підтримується." #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "Зберегти зміни?\n" "Ця дія перезапише зображення і, ймовірно, воно стане гіршої якості!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "Відкрити зображення" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "Усі зображення" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "Усі файли" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "Відкрити теку" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Max Lyashuk aka Ma)(imuM https://launchpad.net/~probel\n" " Roman Oleskevych https://launchpad.net/~oleskevych\n" " Serhey Kusyumoff (Сергій Кусюмов) https://launchpad.net/~sergemine\n" " Serhiy Zahoriya https://launchpad.net/~xintx-ua\n" " Сергій Карпенко(Sergii Karpenko) https://launchpad.net/~karpenkoff" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "Якщо ви видалите елемент, він буде остаточно втрачений." #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "Ви впевнені, що бажаєте повністю\n" "видалити \"%s\"?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "_Файл" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "_Редагувати" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "_Перегляд" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "_Зображення" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "Пере_йти" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "_Довідка" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "Відкрити _Зображення..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "Відкрити зображення" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "Відкрити _теку..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "Відкрити теку" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "_Закрити" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "Закрити вікно" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "_Про" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "Про програму" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "_Параметри…" #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Налаштування користувача для Viewnior" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "_Зберегти" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "Зберегти зміни" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "_Властивості" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "Властивості" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "Встановити як_Шпалери" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "Встановити обране зображення як тло робочого столу" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "Відкрити за допомогою" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "Відкрити виділене зображення у інший програмі" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "В_илучити" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "Вилучити даний файл" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "_Властивості…" #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "Показати інформацію про поточний файл" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "О_новити" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "Оновити даний файл" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "З_більшити" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "Збільшити зображення" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "З_меншити" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "Зменшити зображення" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "_Звичайний розмір" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "Відобразити зображення зі звичайними розмірами" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "Найкраще за_повнення" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "Розмістити зображення цілком у вікні" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "Повернути _За годинниковою стрілкою" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "Повернути зображення за годинниковою стрілкою" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "Повернути проти годинникової стрілки" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "Повернути зображення проти годинникової стрілки" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "Перевернути _вертикально" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "Віддзеркалення зображення вертикально" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "Перевернути _горизонтально" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "Віддзеркалення зображення горизонтально" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "Різати" #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "Full _Screen" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "Показати в повноекранному режимі" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "_Регулювати розмір вікна" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "Відрегулюйте розмір вікна за розміром зображення" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "Смужка меню" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "Показувати смужку меню" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "Панель інструментів" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "Показати панель інструментів" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "Сл_айдшоу" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "Показати в редимі слайдшоу" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "_Попереднє зображення" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "Перейти до попереднього зображення колекції" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "_Наступне зображення" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "Перейти до наступного зображення колекції" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "П_ерше зображення" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "Перейти до першого зображення колекції" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "_Останнє зображення" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "Перейти до останнього зображення колекції" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "Виробник камери" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "Модель камери" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "Дата зйомки" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "Витримка" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "Режим експозиції" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "Розмір діафрагми" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "Швидкість ISO" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "Спалах" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "Режим вимірювання" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "Фокусна відстань" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "Проґрамне забезпечення" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "Опис" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "Авторські права" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "Автор" Viewnior-viewnior-1.8/po/zh_CN.po000066400000000000000000000334441414645621200170200ustar00rootroot00000000000000# Chinese (Simplified) translation for viewnior # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the viewnior package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2010-01-22 08:42+0000\n" "Last-Translator: Xu Zhen \n" "Language-Team: Chinese (Simplified) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Launchpad (build 18566)\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "优雅的图像查看器" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Viewnior 选项" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "打开新图像时采用: " #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "" #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "缩放图像时平滑处理" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "删除图像时需确认" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "显示隐藏图像" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "常规" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "在几秒后显示下一张图像: " #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "放大图像时总是适应屏幕大小" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "全屏" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "鼠标滚轮滚动: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "鼠标双击时: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "图像被修改时: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) 通过鼠标双击来浏览图像:\n" " 双击窗口的左半部分来浏览前一张图像,\n" " 双击窗口的右半部分来浏览后一张图像。 " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "行为" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "保存图像后重新加载" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG 质量:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG 压缩:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "保存" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "裁剪图像" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "宽度: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "高度: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "剪裁" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "指定的位置没有图像。" #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "打开浏览器窗口" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "无法识别图像文件的格式:\n" "'%s'" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "智能模式" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "原始尺寸" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "适应窗口大小" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "浏览图像" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "缩放图像" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "上下滚动图像" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "切换缩放模式" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "全屏" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "每次更改时询问" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "自动保存" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "忽略更改" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "下一张(_N)" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "上一张(_P)" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "图像属性" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "位置:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "文件名:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "类型:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "文件大小:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "宽度:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "高度:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "无" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "使用“%s”打开选中图像" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "在几秒后显示下一张图像:" #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " 秒" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "虚拟内存空间不足。" #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "无法保存对图像的更改。\n" "不支持此类型的图像。" #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "确认保存更改?\n" "这降极低图像的质量!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "打开图像" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "全部图像" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "全部文件" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "打开文件夹" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Xu Zhen https://launchpad.net/~xuzhen666" #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "如果选择删除,此图像将无法恢复。" #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "确定要永久删除 “%s”?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "文件(_F)" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "编辑(_E)" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "查看(_V)" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "图像(_I)" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "转到(_G)" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "帮助(_H)" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "打开图像...(_I)" #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "打开一个图像文件" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "打开文件夹...(_F)" #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "打开一个文件夹" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "关闭(_C)" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "关闭窗口" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "关于(_A)" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "关于本程序" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "首选项(_P)" #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "用户对Viewnior的设置" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "保存(_S)" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "保存更改" #: ../src/vnr-window.c:1752 msgid "Properties" msgstr "属性" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "设为桌面壁纸(_W)" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "把选中的图像设定为桌面背景" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "打开方式(_W)" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "用其他应用程序打开选中的图像" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "删除(_D)" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "删除当前的文件" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "属性...(_P)" #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "显示当前文件的信息" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "重新加载(_R)" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "重新加载当前文件" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "放大(_Z)" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "放大显示图像" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "缩小(_O)" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "缩小显示图像" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "正常尺寸(_N)" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "以正常尺寸显示图像" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "最佳尺寸(_F)" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "调整图像以适应窗口大小" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "顺时针旋转" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "顺时针旋转图像" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "逆时针旋转(_A)" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "逆时针旋转图像" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "垂直翻转(_V)" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "垂直翻转图像" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "水平翻转(_H)" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "水平翻转图像" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "裁剪图像..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "全屏(_S)" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "全屏显示" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "调整窗口大小(_A)" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "调整窗口以适应图像尺寸" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "菜单" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "显示菜单" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "工具栏" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "显示工具栏" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "幻灯片模式(_D)" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "以幻灯片模式显示" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "上一张图像(_P)" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "转到上一张图像" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "下一个图像(_N)" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "转到下一张图像" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "第一张图像(_F)" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "转到第一张图像" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "最后一张图像((_L)" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "转到最后一张图像" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "相机牌子" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "相机型号" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "拍摄日期" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "曝光时间" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "曝光方式" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "光圈大小" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "ISO感光度" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "闪光灯" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "测光方式" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "焦距" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "软件" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "描述" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "版权" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "作者" Viewnior-viewnior-1.8/po/zh_TW.po000066400000000000000000000337601414645621200170530ustar00rootroot00000000000000# Chinese (Traditional) translation for viewnior # Copyright (c) 2016 Rosetta Contributors and Canonical Ltd 2016 # This file is distributed under the same license as the viewnior package. # Hsiu-Ming Chang , 2018. # msgid "" msgstr "" "Project-Id-Version: viewnior\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-02-07 22:04+0200\n" "PO-Revision-Date: 2018-11-12 22:37+0800\n" "Last-Translator: Hsiu-Ming Chang \n" "Language-Team: Chinese (Traditional) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2018-03-04 17:52+0000\n" "X-Generator: Poedit 2.2\n" "Language: zh_TW\n" #: ../data/viewnior.desktop.in.in.h:1 msgid "Viewnior" msgstr "Viewnior" #: ../data/viewnior.desktop.in.in.h:2 ../src/vnr-window.c:1372 msgid "Elegant Image Viewer" msgstr "優雅的圖片檢視器" #: ../data/vnr-preferences-dialog.ui.h:1 msgid "Viewnior Preferences" msgstr "Viewnior 偏好設定" #: ../data/vnr-preferences-dialog.ui.h:2 msgid "Open new image in: " msgstr "開啟新的圖片使用:" #: ../data/vnr-preferences-dialog.ui.h:3 msgid "Desktop: " msgstr "桌面: " #: ../data/vnr-preferences-dialog.ui.h:4 msgid "Smooth images when zoomed" msgstr "縮放圖片時平滑處理" #: ../data/vnr-preferences-dialog.ui.h:5 msgid "Confirm image deletion" msgstr "刪除圖片時確認" #: ../data/vnr-preferences-dialog.ui.h:6 msgid "Show hidden images" msgstr "顯示隱藏圖片" #: ../data/vnr-preferences-dialog.ui.h:7 msgid "General" msgstr "一般" #: ../data/vnr-preferences-dialog.ui.h:8 msgid "Show next image after (in seconds): " msgstr "在幾秒後顯示下一張圖片:" #: ../data/vnr-preferences-dialog.ui.h:9 msgid "Always expand images to fit screen" msgstr "總是放大圖片來符合螢幕" #: ../data/vnr-preferences-dialog.ui.h:10 msgid "Fullscreen" msgstr "全螢幕" #: ../data/vnr-preferences-dialog.ui.h:11 msgid "On mouse wheel: " msgstr "滑鼠滾輪滾動時: " #: ../data/vnr-preferences-dialog.ui.h:12 msgid "On double click: " msgstr "按兩下時: " #: ../data/vnr-preferences-dialog.ui.h:13 msgid "On image modification: " msgstr "圖片修改時: " #: ../data/vnr-preferences-dialog.ui.h:14 msgid "" " (!) Navigating images with double click :\n" " Clicking on the left half of the window shows the\n" " previous image and on the right side - the next. " msgstr "" " (!) 透過按兩下來瀏覽圖片:\n" " 在視窗的左半邊按兩下來瀏覽上一張圖片,\n" " 在視窗的右半邊按兩下來瀏覽下一張圖片。 " #: ../data/vnr-preferences-dialog.ui.h:17 msgid "Behavior" msgstr "行為" #: ../data/vnr-preferences-dialog.ui.h:18 msgid "Reload image on save" msgstr "儲存圖片後重新載入" #: ../data/vnr-preferences-dialog.ui.h:19 msgid "JPEG quality:" msgstr "JPEG 品質:" #: ../data/vnr-preferences-dialog.ui.h:20 msgid "PNG compression:" msgstr "PNG 壓縮:" #: ../data/vnr-preferences-dialog.ui.h:21 msgid "Saving" msgstr "儲存" #: ../data/vnr-crop-dialog.ui.h:1 msgid "Crop Image" msgstr "裁剪圖片" #: ../data/vnr-crop-dialog.ui.h:2 msgid "X: " msgstr "X: " #: ../data/vnr-crop-dialog.ui.h:3 msgid "Y: " msgstr "Y: " #: ../data/vnr-crop-dialog.ui.h:4 msgid "Width: " msgstr "寬度: " #: ../data/vnr-crop-dialog.ui.h:5 msgid "Height: " msgstr "高度: " #: ../data/vnr-crop-dialog.ui.h:6 ../src/vnr-window.c:1816 msgid "Crop" msgstr "裁剪" #: ../src/main.c:117 ../src/vnr-window.c:1620 ../src/vnr-window.c:1975 #: ../src/vnr-window.c:2414 msgid "The given locations contain no images." msgstr "指定的位置並未包含圖片。" #: ../src/uni-scroll-win.c:223 msgid "Open the navigator window" msgstr "開啟導覽器視窗" #: ../src/vnr-file.c:223 #, c-format msgid "" "Couldn't recognise the image file\n" "format for file '%s'" msgstr "" "無法辨識圖片檔案\n" "「%s」的檔案格式" #: ../src/vnr-prefs.c:260 msgid "Smart Mode" msgstr "智慧模式" #: ../src/vnr-prefs.c:261 msgid "1:1 Mode" msgstr "1:1 模式" #: ../src/vnr-prefs.c:262 msgid "Fit To Window Mode" msgstr "符合視窗模式" #: ../src/vnr-prefs.c:263 msgid "Last Used Mode" msgstr "上次使用的模式" #: ../src/vnr-prefs.c:292 ../src/vnr-prefs.c:304 msgid "Navigate images" msgstr "瀏覽圖片" #: ../src/vnr-prefs.c:293 msgid "Zoom image" msgstr "縮放圖片" #: ../src/vnr-prefs.c:294 msgid "Scroll image up/down" msgstr "向上/下捲動圖片" #: ../src/vnr-prefs.c:302 msgid "Switch zoom modes" msgstr "切換縮放模式" #: ../src/vnr-prefs.c:303 msgid "Enter fullscreen mode" msgstr "進入全螢幕模式" #: ../src/vnr-prefs.c:312 msgid "Ask every time" msgstr "每次詢問" #: ../src/vnr-prefs.c:313 msgid "Autosave" msgstr "自動儲存" #: ../src/vnr-prefs.c:314 msgid "Ignore changes" msgstr "忽略變更" #: ../src/vnr-properties-dialog.c:112 msgid "_Next" msgstr "下一張(_N)" #: ../src/vnr-properties-dialog.c:113 msgid "_Previous" msgstr "上一張(_P)" #: ../src/vnr-properties-dialog.c:128 msgid "Image Properties" msgstr "圖片屬性" #: ../src/vnr-properties-dialog.c:136 msgid "Location:" msgstr "位置:" #: ../src/vnr-properties-dialog.c:185 msgid "Name:" msgstr "名稱:" #: ../src/vnr-properties-dialog.c:189 msgid "Type:" msgstr "類型:" #: ../src/vnr-properties-dialog.c:193 msgid "Size:" msgstr "大小:" #: ../src/vnr-properties-dialog.c:197 msgid "Width:" msgstr "寬度:" #: ../src/vnr-properties-dialog.c:201 msgid "Height:" msgstr "高度:" #: ../src/vnr-properties-dialog.c:373 ../src/vnr-properties-dialog.c:374 #: ../src/vnr-properties-dialog.c:375 ../src/vnr-properties-dialog.c:376 #: ../src/vnr-properties-dialog.c:377 ../src/vnr-properties-dialog.c:378 msgid "None" msgstr "無" #: ../src/vnr-window.c:297 #, c-format msgid "Use \"%s\" to open the selected image" msgstr "使用「%s」開啟選擇的圖片" #: ../src/vnr-window.c:467 msgid "Show next image after: " msgstr "多久之後顯示下一張圖片:" #: ../src/vnr-window.c:485 ../src/vnr-window.c:902 msgid " second" msgid_plural " seconds" msgstr[0] " 秒" #: ../src/vnr-window.c:727 ../src/vnr-window.c:790 msgid "Not enough virtual memory." msgstr "沒有足夠的虛擬記憶體。" #: ../src/vnr-window.c:761 ../src/vnr-window.c:819 ../src/vnr-window.c:1706 msgid "" "Image modifications cannot be saved.\n" "Writing in this format is not supported." msgstr "" "無法儲存圖片的修改。\n" "不支援這個格式的寫入。" #: ../src/vnr-window.c:768 ../src/vnr-window.c:826 ../src/vnr-window.c:1713 msgid "" "Save modifications?\n" "This will overwrite the image and may reduce its quality!" msgstr "" "要儲存修改嗎?\n" "這將會覆寫圖片並且可能降低品質!" #: ../src/vnr-window.c:1271 msgid "Open Image" msgstr "開啟圖片" #: ../src/vnr-window.c:1282 msgid "All Images" msgstr "所有圖片" #: ../src/vnr-window.c:1288 msgid "All Files" msgstr "所有檔案" #: ../src/vnr-window.c:1318 msgid "Open Folder" msgstr "開啟資料夾" #: ../src/vnr-window.c:1378 msgid "translator-credits" msgstr "Hsiu-Ming Chang , 2018." #: ../src/vnr-window.c:1558 msgid "If you delete an item, it will be permanently lost." msgstr "如果你刪除這個項目,它會永久遺失。" #. I18N: The '%s' is replaced with the name of the file to be deleted. #: ../src/vnr-window.c:1561 #, c-format msgid "" "Are you sure you want to\n" "permanently delete \"%s\"?" msgstr "" "你確定要永久刪除\n" "「%s」嗎?" #: ../src/vnr-window.c:1721 msgid "_File" msgstr "檔案(_F)" #: ../src/vnr-window.c:1722 msgid "_Edit" msgstr "編輯(_E)" #: ../src/vnr-window.c:1723 msgid "_View" msgstr "檢視 (_V)" #: ../src/vnr-window.c:1724 msgid "_Image" msgstr "圖片(_I)" #: ../src/vnr-window.c:1725 msgid "_Go" msgstr "前往(_G)" #: ../src/vnr-window.c:1726 msgid "_Help" msgstr "說明 (_H)" #: ../src/vnr-window.c:1728 msgid "Open _Image..." msgstr "開啟圖片(_I)..." #: ../src/vnr-window.c:1729 msgid "Open an Image" msgstr "開啟圖片" #: ../src/vnr-window.c:1731 msgid "Open _Folder..." msgstr "開啟資料夾(_F)..." #: ../src/vnr-window.c:1732 msgid "Open a Folder" msgstr "開啟資料夾" #: ../src/vnr-window.c:1734 msgid "_Close" msgstr "關閉(_C)" #: ../src/vnr-window.c:1735 msgid "Close window" msgstr "關閉視窗" #: ../src/vnr-window.c:1737 msgid "_About" msgstr "關於(_A)" #: ../src/vnr-window.c:1738 msgid "About this application" msgstr "關於此應用程式" #: ../src/vnr-window.c:1740 msgid "_Preferences..." msgstr "偏好設定 (_P)..." #: ../src/vnr-window.c:1741 msgid "User preferences for Viewnior" msgstr "Viewnior 的使用者偏好設定" #: ../src/vnr-window.c:1746 msgid "_Save" msgstr "儲存(_S)" #: ../src/vnr-window.c:1747 msgid "Save changes" msgstr "儲存變更" #: ../src/vnr-window.c:1752 msgid "_Properties" msgstr "屬性(_P)" #: ../src/vnr-window.c:1753 msgid "Properties" msgstr "屬性" #: ../src/vnr-window.c:1758 msgid "Set as _Wallpaper" msgstr "設為桌布(_W)" #: ../src/vnr-window.c:1759 msgid "Set the selected image as the desktop background" msgstr "將選取的圖片設為桌面背景" #: ../src/vnr-window.c:1764 msgid "Open _With" msgstr "以…開啟(_W)" #: ../src/vnr-window.c:1765 msgid "Open the selected image with a different application" msgstr "使用不同的應用程式開啟選擇的圖片" #: ../src/vnr-window.c:1767 ../src/vnr-window.c:1776 msgid "_Delete" msgstr "刪除(_D)" #: ../src/vnr-window.c:1768 ../src/vnr-window.c:1777 msgid "Delete the current file" msgstr "刪除目前的檔案" #: ../src/vnr-window.c:1770 msgid "_Properties..." msgstr "屬性(_P)..." #: ../src/vnr-window.c:1771 msgid "Show information about the current file" msgstr "顯示目前檔案的資訊" #: ../src/vnr-window.c:1773 msgid "_Reload" msgstr "重新載入(_R)" #: ../src/vnr-window.c:1774 msgid "Reload the current file" msgstr "重新載入目前的檔案" #: ../src/vnr-window.c:1779 ../src/vnr-window.c:1791 ../src/vnr-window.c:1794 msgid "_Zoom In" msgstr "放大(_Z)" #: ../src/vnr-window.c:1780 msgid "Enlarge the image" msgstr "放大該圖片" #: ../src/vnr-window.c:1782 ../src/vnr-window.c:1797 msgid "Zoom _Out" msgstr "縮小(_O)" #: ../src/vnr-window.c:1783 ../src/vnr-window.c:1792 ../src/vnr-window.c:1795 #: ../src/vnr-window.c:1798 msgid "Shrink the image" msgstr "縮小該圖片" #: ../src/vnr-window.c:1785 msgid "_Normal Size" msgstr "正常大小(_N)" #: ../src/vnr-window.c:1786 msgid "Show the image at its normal size" msgstr "以圖片的正常大小顯示" #: ../src/vnr-window.c:1788 msgid "Best _Fit" msgstr "最適大小(_F)" #: ../src/vnr-window.c:1789 msgid "Fit the image to the window" msgstr "圖片符合視窗大小" #: ../src/vnr-window.c:1803 msgid "Rotate _Clockwise" msgstr "順時針旋轉(_C)" #: ../src/vnr-window.c:1804 msgid "Rotate image clockwise" msgstr "順時針旋轉" #: ../src/vnr-window.c:1806 msgid "Rotate _Anti-clockwise" msgstr "逆時針旋轉(_A)" #: ../src/vnr-window.c:1807 msgid "Rotate image anti-clockwise" msgstr "逆時針旋轉" #: ../src/vnr-window.c:1809 msgid "Flip _Vertical" msgstr "垂直翻轉(_V)" #: ../src/vnr-window.c:1810 msgid "Flip image vertically" msgstr "垂直翻轉圖片" #: ../src/vnr-window.c:1812 msgid "Flip _Horizontal" msgstr "水平翻轉(_H)" #: ../src/vnr-window.c:1813 msgid "Flip image horizontally" msgstr "水平翻轉圖片" #: ../src/vnr-window.c:1815 msgid "Crop..." msgstr "裁剪..." #: ../src/vnr-window.c:1821 msgid "Full _Screen" msgstr "全螢幕(_S)" #: ../src/vnr-window.c:1822 msgid "Show in fullscreen mode" msgstr "以全螢幕模式顯示" #: ../src/vnr-window.c:1824 msgid "_Adjust window size" msgstr "調整視窗大小(_A)" #: ../src/vnr-window.c:1825 msgid "Adjust window size to fit the image" msgstr "調整視窗大小來符合圖片" #: ../src/vnr-window.c:1830 msgid "Menu Bar" msgstr "選單列" #: ../src/vnr-window.c:1831 msgid "Show Menu Bar" msgstr "顯示選單列" #: ../src/vnr-window.c:1833 msgid "Toolbar" msgstr "工具列" #: ../src/vnr-window.c:1834 msgid "Show Toolbar" msgstr "顯示工具列" #: ../src/vnr-window.c:1839 msgid "Sli_deshow" msgstr "投影片(_D)" #: ../src/vnr-window.c:1840 msgid "Show in slideshow mode" msgstr "以投影片模式顯示" #: ../src/vnr-window.c:1845 msgid "_Previous Image" msgstr "上一張圖片(_P)" #: ../src/vnr-window.c:1846 msgid "Go to the previous image of the collection" msgstr "前往圖片集的上一張圖片" #: ../src/vnr-window.c:1848 msgid "_Next Image" msgstr "下一張圖片(_N)" #: ../src/vnr-window.c:1849 msgid "Go to the next image of the collection" msgstr "前往圖片集的下一張圖片" #: ../src/vnr-window.c:1851 msgid "_First Image" msgstr "第一張圖片(_F)" #: ../src/vnr-window.c:1852 msgid "Go to the first image of the collection" msgstr "前往圖片集的第一張圖片" #: ../src/vnr-window.c:1854 msgid "_Last Image" msgstr "最後一張圖片(_L)" #: ../src/vnr-window.c:1855 msgid "Go to the last image of the collection" msgstr "前往圖片集的最後一張圖片" #: ../src/uni-exiv2.hpp:49 msgid "Camera make" msgstr "相機製造商" #: ../src/uni-exiv2.hpp:50 msgid "Camera model" msgstr "相機型號" #: ../src/uni-exiv2.hpp:51 msgid "Date Taken" msgstr "拍攝時間" #: ../src/uni-exiv2.hpp:52 msgid "Exposure time" msgstr "曝光時間" #: ../src/uni-exiv2.hpp:53 msgid "Exposure mode" msgstr "曝光模式" #: ../src/uni-exiv2.hpp:54 msgid "Aperture Value" msgstr "光圈值" #: ../src/uni-exiv2.hpp:55 msgid "ISO speed" msgstr "ISO 速度" #: ../src/uni-exiv2.hpp:56 msgid "Flash" msgstr "閃光燈" #: ../src/uni-exiv2.hpp:57 msgid "Metering mode" msgstr "測光模式" #: ../src/uni-exiv2.hpp:58 msgid "Focal length" msgstr "焦距長度" #: ../src/uni-exiv2.hpp:59 msgid "Software" msgstr "軟體" #: ../src/uni-exiv2.hpp:63 msgid "Description" msgstr "描述" #: ../src/uni-exiv2.hpp:64 msgid "Copyright" msgstr "版權" #: ../src/uni-exiv2.hpp:65 msgid "Author" msgstr "作者" Viewnior-viewnior-1.8/src/000077500000000000000000000000001414645621200156205ustar00rootroot00000000000000Viewnior-viewnior-1.8/src/.gitignore000066400000000000000000000000321414645621200176030ustar00rootroot00000000000000uni-marshal.[ch] viewnior Viewnior-viewnior-1.8/src/main.c000077500000000000000000000105541414645621200167200ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include #define _(String) gettext (String) #include #include #include "config.h" #include "vnr-window.h" #include "vnr-message-area.h" #include "vnr-file.h" #include "vnr-tools.h" #define PIXMAP_DIR PACKAGE_DATA_DIR"/viewnior/pixmaps/" static gchar **files = NULL; //array of files specified to be opened static gboolean version = FALSE; static gboolean slideshow = FALSE; static gboolean fullscreen = FALSE; /* List of option entries * The only option is for specifying file to be opened. */ static GOptionEntry opt_entries[] = { {G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &files, NULL, "[FILE]"}, {"version", 0, 0, G_OPTION_ARG_NONE, &version, NULL, NULL}, {"slideshow", 0, 0, G_OPTION_ARG_NONE, &slideshow, NULL, NULL}, {"fullscreen", 0, 0, G_OPTION_ARG_NONE, &fullscreen, NULL, NULL}, {NULL} }; int main (int argc, char *argv[]) { GError *error = NULL; GOptionContext *opt_context; GtkWindow *window; GSList *uri_list = NULL; GList *file_list = NULL; bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); opt_context = g_option_context_new ("- Elegant Image Viewer"); g_option_context_add_main_entries (opt_context, opt_entries, NULL); g_option_context_add_group (opt_context, gtk_get_option_group (TRUE)); g_option_context_parse (opt_context, &argc, &argv, &error); if (error != NULL) { printf ("%s\nRun 'viewnior --help' to see a full list of available command line options.\n", error->message); return 1; } else if(version) { printf("%s\n", PACKAGE_STRING); return 0; } gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), PIXMAP_DIR); window = vnr_window_new (); gtk_window_set_default_size (window, 480, 300); gtk_window_set_position (window, GTK_WIN_POS_CENTER); uri_list = vnr_tools_get_list_from_array (files); if(uri_list != NULL) { if (g_slist_length(uri_list) == 1) { vnr_file_load_single_uri (uri_list->data, &file_list, VNR_WINDOW(window)->prefs->show_hidden, &error); } else { vnr_file_load_uri_list (uri_list, &file_list, VNR_WINDOW(window)->prefs->show_hidden, &error); } if(error != NULL && file_list != NULL) { deny_slideshow(VNR_WINDOW(window)); vnr_message_area_show(VNR_MESSAGE_AREA (VNR_WINDOW(window)->msg_area), TRUE, error->message, TRUE); vnr_window_set_list(VNR_WINDOW(window), file_list, TRUE); } else if(error != NULL) { deny_slideshow(VNR_WINDOW(window)); vnr_message_area_show(VNR_MESSAGE_AREA (VNR_WINDOW(window)->msg_area), TRUE, error->message, TRUE); } else if(file_list == NULL) { deny_slideshow(VNR_WINDOW(window)); vnr_message_area_show(VNR_MESSAGE_AREA (VNR_WINDOW(window)->msg_area), TRUE, _("The given locations contain no images."), TRUE); } else { vnr_window_set_list(VNR_WINDOW(window), file_list, TRUE); } } VNR_WINDOW(window)->prefs->start_slideshow = slideshow; VNR_WINDOW(window)->prefs->start_fullscreen = fullscreen; if ( VNR_WINDOW(window)->prefs->start_maximized ) { gtk_window_maximize(window); } gtk_widget_show (GTK_WIDGET (window)); gtk_main (); return 0; } Viewnior-viewnior-1.8/src/meson.build000066400000000000000000000013121414645621200177570ustar00rootroot00000000000000src_inc = include_directories('.') viewnior_sources = [ 'main.c', 'vnr-window.c', 'vnr-window.h', 'uni-cache.c', 'uni-anim-view.c', 'uni-nav.c', 'uni-scroll-win.c', 'uni-dragger.c', 'uni-image-view.c', 'vnr-message-area.c', 'vnr-properties-dialog.c', 'vnr-file.c', 'uni-utils.c', 'vnr-prefs.c', 'vnr-crop.c', 'vnr-tools.c', 'uni-exiv2.cpp', ] marshal = 'uni-marshal' viewnior_sources += gnome.genmarshal( marshal, sources: marshal + '.list', prefix: 'uni_marshal', internal: true ) nautilus = executable( 'viewnior', viewnior_sources, include_directories: viewnior_include_dirs, dependencies: viewnior_deps, install: true ) Viewnior-viewnior-1.8/src/uni-anim-view.c000077500000000000000000000250611414645621200204600ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include #include #include "uni-anim-view.h" /*************************************************************/ /***** Private data ******************************************/ /*************************************************************/ enum { TOGGLE_RUNNING, STEP, LAST_SIGNAL }; static guint uni_anim_view_signals[LAST_SIGNAL] = { 0 }; G_DEFINE_TYPE (UniAnimView, uni_anim_view, UNI_TYPE_IMAGE_VIEW); /*************************************************************/ /***** Static stuff ******************************************/ /*************************************************************/ static gboolean uni_anim_view_updator (gpointer data) { UniAnimView *aview = (UniAnimView *) data; // Workaround for #437791. glong delay_us = aview->delay * 1000; if (aview->delay == 20) { // If the delay time is 20 ms, the GIF is a "fast player." and // we increase it to a more reasonable 100 ms so that the // frame is only updated 1/5 of the times // uni_anim_view_updator() is run. delay_us = 200; } g_time_val_add (&aview->time, delay_us); gboolean next = gdk_pixbuf_animation_iter_advance (aview->iter, &aview->time); uni_anim_view_set_is_playing (aview, FALSE); aview->delay = gdk_pixbuf_animation_iter_get_delay_time (aview->iter); aview->timer_id = g_timeout_add (aview->delay, uni_anim_view_updator, aview); if (!next) return FALSE; GdkPixbuf *pixbuf = gdk_pixbuf_animation_iter_get_pixbuf (aview->iter); uni_image_view_set_pixbuf (UNI_IMAGE_VIEW (aview), pixbuf, FALSE); return FALSE; } /*************************************************************/ /***** Private signal handlers *******************************/ /*************************************************************/ static void uni_anim_view_toggle_running (UniAnimView * aview) { uni_anim_view_set_is_playing (aview, !aview->timer_id); } /* Steps the animation one frame forward. If the animation is playing * it will be stopped. Will it wrap around if the animation is at its * last frame? **/ static void uni_anim_view_step (UniAnimView * aview) { if (aview->anim) { /* Part of workaround for #437791. uni_anim_view_updator() * might not always immidiately step to the next frame, so we * loop until the frame is changed. * * If we are on the last frame, it will not wrap around so the * frame will never change. So we risk an infinite loop. * Unfortunately but expectedly, GdkPixbufAnimationIter * doesn't provide a way to check if we * are on the last frame because the API is totally brain * damaged. The work-around is to give uni_anim_view_updator * exactly 10 chances to advance the frame before bailing out. * */ int n = 0; GdkPixbuf *old = gdk_pixbuf_animation_iter_get_pixbuf (aview->iter); while ((gdk_pixbuf_animation_iter_get_pixbuf (aview->iter) == old) && (n < 10)) { uni_anim_view_updator (aview); n++; } } uni_anim_view_set_is_playing (aview, FALSE); } /*************************************************************/ /***** Stuff that deals with the type ************************/ /*************************************************************/ static void uni_anim_view_init (UniAnimView * aview) { aview->anim = NULL; aview->iter = NULL; aview->timer_id = 0; } static void uni_anim_view_finalize (GObject * object) { uni_anim_view_set_is_playing (UNI_ANIM_VIEW (object), FALSE); /* Chain up. */ G_OBJECT_CLASS (uni_anim_view_parent_class)->finalize (object); } static void uni_anim_view_init_signals (UniAnimViewClass * klass) { /** * UniAnimView::toggle-running: * @aview: a #UniAnimView * * Stops the animation if it was playing or resumes it, if it was * playing. ::toggle-running is a keybinding signal emitted when * %GDK_KEY_p is pressed on the widget and should not be used by * clients of this library. **/ uni_anim_view_signals[TOGGLE_RUNNING] = g_signal_new ("toggle_running", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (UniAnimViewClass, toggle_running), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /** * UniAnimView::step: * @aview: a #UniAnimView * * Steps the animation one frame forward. If the animation is * playing it will first be stopped. ::step is a keybinding signal * emitted when %GDK_KEY_j is pressed on the widget and should not be * used by clients of this library. **/ uni_anim_view_signals[STEP] = g_signal_new ("step", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (UniAnimViewClass, step), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void uni_anim_view_class_init (UniAnimViewClass * klass) { uni_anim_view_init_signals (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = uni_anim_view_finalize; klass->toggle_running = uni_anim_view_toggle_running; klass->step = uni_anim_view_step; /* Add keybindings. */ GtkBindingSet *binding_set = gtk_binding_set_by_class (klass); /* Stop */ gtk_binding_entry_add_signal (binding_set, GDK_KEY_p, 0, "toggle_running", 0); /* Step */ gtk_binding_entry_add_signal (binding_set, GDK_KEY_j, 0, "step", 0); } /** * uni_anim_view_new: * @returns: A new #UniAnimView. * * Creates a new #UniAnimView with default values. **/ GtkWidget * uni_anim_view_new (void) { GtkWidget *aview = g_object_new (UNI_TYPE_ANIM_VIEW, NULL); return aview; } /*************************************************************/ /***** Read-write properties *********************************/ /*************************************************************/ /** * uni_anim_view_set_anim: * @aview: A #UniAnimView. * @anim: A pixbuf animation to play. * * Sets the pixbuf animation to play, or %NULL to not play any * animation. * * If the animation is a static image or only has one frame, then the * static image will be displayed instead. If more frames are loaded * into the animation, then #UniAnimView will automatically animate to * those frames. * * The effect of this method is analoguous to * uni_image_view_set_pixbuf(). Fit mode is reset to * %GTK_FIT_SIZE_IF_LARGER so that the whole area of the animation * fits in the view. Three signals are emitted, first the * #UniImageView will emit ::zoom-changed and then ::pixbuf-changed, * second, #UniAnimView itself will emit ::anim-changed. * * The default pixbuf animation is %NULL. **/ /* Return TRUE if anim is a static image */ gboolean uni_anim_view_set_anim (UniAnimView * aview, GdkPixbufAnimation * anim) { gboolean is_static; if (aview->anim) g_object_unref (aview->anim); aview->anim = anim; if (!anim) { uni_anim_view_set_is_playing (aview, FALSE); uni_image_view_set_pixbuf (UNI_IMAGE_VIEW (aview), NULL, TRUE); return TRUE; } g_object_ref (aview->anim); if (aview->iter) g_object_unref (aview->iter); g_get_current_time (&aview->time); aview->iter = gdk_pixbuf_animation_get_iter (aview->anim, &aview->time); GdkPixbuf *pixbuf; is_static = gdk_pixbuf_animation_is_static_image (anim); if (is_static) { pixbuf = gdk_pixbuf_animation_get_static_image (anim); } else { pixbuf = gdk_pixbuf_animation_iter_get_pixbuf (aview->iter); } uni_image_view_set_pixbuf (UNI_IMAGE_VIEW (aview), pixbuf, TRUE); uni_anim_view_set_is_playing (aview, FALSE); aview->delay = gdk_pixbuf_animation_iter_get_delay_time (aview->iter); if(!is_static) aview->timer_id = g_timeout_add (aview->delay, uni_anim_view_updator, aview); return is_static; } /* No conversion from GdkPixbuf to GdkPixbufAnim can be made * directly using the current API, so this makes a static * GdkPixbufAnimation and updates the UniAnimView */ void uni_anim_view_set_static (UniAnimView * aview, GdkPixbuf * pixbuf) { GdkPixbufSimpleAnim *s_anim; s_anim = gdk_pixbuf_simple_anim_new (gdk_pixbuf_get_width(pixbuf), gdk_pixbuf_get_height(pixbuf), -1); gdk_pixbuf_simple_anim_add_frame(s_anim, pixbuf); /* Simple version of uni_anim_view_set_anim */ if (aview->anim) g_object_unref (aview->anim); aview->anim = (GdkPixbufAnimation*)s_anim; g_object_ref (aview->anim); if (aview->iter) g_object_unref (aview->iter); uni_image_view_set_pixbuf (UNI_IMAGE_VIEW (aview), pixbuf, TRUE); uni_anim_view_set_is_playing (aview, FALSE); aview->delay = -1; aview->iter = NULL; g_object_unref(pixbuf); } /** * uni_anim_view_set_is_playing: * @aview: a #UniImageView * @playing: %TRUE to play the animation, %FALSE otherwise * * Sets whether the animation should play or not. If there is no * current animation this method does not have any effect. **/ void uni_anim_view_set_is_playing (UniAnimView * aview, gboolean playing) { if (!playing && aview->timer_id) { /* Commanded to stop AND the animation is playing. */ g_source_remove (aview->timer_id); aview->timer_id = 0; } else if (playing && aview->anim) uni_anim_view_updator (aview); } Viewnior-viewnior-1.8/src/uni-anim-view.h000077500000000000000000000055331414645621200204670ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __UNI_ANIM_VIEW_H__ #define __UNI_ANIM_VIEW_H__ #include "uni-image-view.h" G_BEGIN_DECLS #define UNI_TYPE_ANIM_VIEW (uni_anim_view_get_type ()) #define UNI_ANIM_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNI_TYPE_ANIM_VIEW, UniAnimView)) #define UNI_ANIM_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNI_TYPE_ANIM_VIEW, UniAnimViewClass)) #define UNI_IS_ANIM_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNI_TYPE_ANIM_VIEW)) #define UNI_IS_ANIM_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNI_TYPE_ANIM_VIEW)) #define UNI_ANIM_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNI_TYPE_ANIM_VIEW, UniAnimViewClass)) typedef struct _UniAnimView UniAnimView; typedef struct _UniAnimViewClass UniAnimViewClass; /** * UniAnimView: * * UniAnimView is a subclass of #UniImageView that provies facilities * for displaying and controlling an animation. **/ struct _UniAnimView { UniImageView parent; /* The current animation. */ GdkPixbufAnimation *anim; /* The iterator of the current animation. */ GdkPixbufAnimationIter *iter; /* ID of the currently running animation timer. */ int timer_id; /* Timer used to get the right frame. */ GTimeVal time; int delay; }; struct _UniAnimViewClass { UniImageViewClass parent_class; /* Keybinding signals. */ void (*toggle_running) (UniAnimView * aview); void (*step) (UniAnimView * aview); }; GType uni_anim_view_get_type (void) G_GNUC_CONST; /* Constructors */ GtkWidget *uni_anim_view_new (void); /* Read-write properties */ gboolean uni_anim_view_set_anim (UniAnimView * aview, GdkPixbufAnimation * anim); void uni_anim_view_set_static (UniAnimView * aview, GdkPixbuf *anim); void uni_anim_view_set_is_playing (UniAnimView * aview, gboolean playing); G_END_DECLS #endif /* __UNI_ANIM_VIEW_H__ */ Viewnior-viewnior-1.8/src/uni-cache.c000077500000000000000000000252031414645621200176250ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include "uni-cache.h" #include "uni-utils.h" #include static gboolean uni_rectangle_contains_rect (GdkRectangle r1, GdkRectangle r2) { return r1.x <= r2.x && r1.y <= r2.y && (r2.x + r2.width) <= (r1.x + r1.width) && (r2.y + r2.height) <= (r1.y + r1.height); } static void uni_pixbuf_copy_area_intact (GdkPixbuf * src, int src_x, int src_y, int width, int height, GdkPixbuf * dst, int dst_x, int dst_y) { int y; if (src_x == dst_x && src_y == dst_y && src == dst) return; int src_stride = gdk_pixbuf_get_rowstride (src); int dst_stride = gdk_pixbuf_get_rowstride (dst); int chans = gdk_pixbuf_get_n_channels (src); int linelen = width * chans; guchar *src_base = gdk_pixbuf_get_pixels (src); guchar *dst_base = gdk_pixbuf_get_pixels (dst); int src_y_ofs = src_y * src_stride; int dst_y_ofs = dst_y * dst_stride; if (dst_y > src_y) { src_y_ofs = (src_y + height - 1) * src_stride; dst_y_ofs = (dst_y + height - 1) * dst_stride; src_stride = -src_stride; dst_stride = -dst_stride; } guchar *src_ofs = src_base + src_y_ofs + src_x * chans; guchar *dst_ofs = dst_base + dst_y_ofs + dst_x * chans; void (*copy_func) (void *, void *, size_t) = (void *) memcpy; if (dst_x > src_x) copy_func = (void *) memmove; for (y = 0; y < height; y++) { copy_func (dst_ofs, src_ofs, linelen); src_ofs += src_stride; dst_ofs += dst_stride; } } /** * uni_pixbuf_draw_cache_get_method: * @old: the last draw options used * @new_: the current draw options * @returns: the best draw method to use to draw * * Gets the fastest method to draw the specified draw options. * @last_opts is assumed to be the last #PixbufDrawOpts used and * @new_opts is the one to use this time. **/ UniPixbufDrawMethod uni_pixbuf_draw_cache_get_method (UniPixbufDrawOpts * old, UniPixbufDrawOpts * new_) { if (new_->zoom != old->zoom || new_->interp != old->interp || new_->pixbuf != old->pixbuf) { return UNI_PIXBUF_DRAW_METHOD_SCALE; } else if (uni_rectangle_contains_rect (old->zoom_rect, new_->zoom_rect)) { return UNI_PIXBUF_DRAW_METHOD_CONTAINS; } else { return UNI_PIXBUF_DRAW_METHOD_SCROLL; } } /** * uni_pixbuf_draw_cache_new: * @returns: a new #UniPixbufDrawCache * * Creates a new pixbuf draw cache. **/ UniPixbufDrawCache * uni_pixbuf_draw_cache_new () { UniPixbufDrawCache *cache = g_new0 (UniPixbufDrawCache, 1); cache->last_pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 1, 1); cache->check_size = 16; cache->old = (UniPixbufDrawOpts) { 0, { 0, 0, 0, 0} , 0, 0, GDK_INTERP_NEAREST, cache->last_pixbuf}; return cache; } /** * uni_pixbuf_draw_cache_free: * @cache: a #UniPixbufDrawCache * * Deallocates a pixbuf draw cache and all its data. **/ void uni_pixbuf_draw_cache_free (UniPixbufDrawCache * cache) { g_object_unref (cache->last_pixbuf); g_free (cache); } /** * uni_pixbuf_draw_cache_invalidate: * @cache: a #UniPixbufDrawCache * * Force the pixbuf draw cache to scale the pixbuf at the next draw. * * UniPixbufDrawCache tries to minimize the number of scale operations * needed by caching the last drawn pixbuf. It would be inefficient to * check the individual pixels inside the pixbuf so it assumes that if * the memory address of the pixbuf has not changed, then the cache is * good to use. * * However, when the image data is modified, this assumtion breaks, * which is why this method must be used to tell draw cache about it. **/ void uni_pixbuf_draw_cache_invalidate (UniPixbufDrawCache * cache) { /* Set the cached zoom to a bogus value, to force a DRAW_FLAGS_SCALE. */ cache->old.zoom = -1234.0; } static GdkPixbuf * uni_pixbuf_draw_cache_scroll_intersection (GdkPixbuf * pixbuf, int new_width, int new_height, int src_x, int src_y, int inter_width, int inter_height, int dst_x, int dst_y) { int last_width = gdk_pixbuf_get_width (pixbuf); int last_height = gdk_pixbuf_get_height (pixbuf); int width = MAX (last_width, new_width); int height = MAX (last_height, new_height); if (width > last_width || height > last_height) { GdkColorspace cs = gdk_pixbuf_get_colorspace (pixbuf); int bps = gdk_pixbuf_get_bits_per_sample (pixbuf); gboolean alpha = gdk_pixbuf_get_has_alpha (pixbuf); GdkPixbuf *tmp = gdk_pixbuf_new (cs, alpha, bps, width, height); uni_pixbuf_copy_area_intact (pixbuf, src_x, src_y, inter_width, inter_height, tmp, dst_x, dst_y); g_object_unref (pixbuf); return tmp; } uni_pixbuf_copy_area_intact (pixbuf, src_x, src_y, inter_width, inter_height, pixbuf, dst_x, dst_y); return pixbuf; } /** * uni_pixbuf_draw_cache_intersect_draw: * * Updates the cache by first scrolling the still valid area in the * cache. Then the newly exposed areas in the cache is sampled from * the pixbuf. **/ static void uni_pixbuf_draw_cache_intersect_draw (UniPixbufDrawCache * cache, UniPixbufDrawOpts * opts) { GdkRectangle this = opts->zoom_rect; GdkRectangle old_rect = cache->old.zoom_rect; int n; /* If there is no intersection, we have to scale the whole area from the source pixbuf. */ GdkRectangle inter = {0, 0, 0, 0}; GdkRectangle around[4] = { this, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0} }; if (gdk_rectangle_intersect (&old_rect, &this, &inter)) uni_rectangle_get_rects_around (&this, &inter, around); cache->last_pixbuf = uni_pixbuf_draw_cache_scroll_intersection (cache->last_pixbuf, this.width, this.height, inter.x - old_rect.x, inter.y - old_rect.y, inter.width, inter.height, around[1].width, around[0].height); for (n = 0; n < 4; n++) { if (!around[n].width || !around[n].height) continue; uni_pixbuf_scale_blend (opts->pixbuf, cache->last_pixbuf, around[n].x - this.x, around[n].y - this.y, around[n].width, around[n].height, -this.x, -this.y, opts->zoom, opts->interp, around[n].x, around[n].y); } } /** * uni_pixbuf_draw_cache_draw: * @cache: a #UniPixbufDrawCache * @opts: the #UniPixbufDrawOpts to use in this draw * @window: a #GdkWindow to draw on * * Redraws the area specified in the pixbuf draw options in an * efficient way by using caching. **/ void uni_pixbuf_draw_cache_draw (UniPixbufDrawCache * cache, UniPixbufDrawOpts * opts, GdkWindow * window) { GdkRectangle this = opts->zoom_rect; UniPixbufDrawMethod method = uni_pixbuf_draw_cache_get_method (&cache->old, opts); int deltax = 0; int deltay = 0; if (method == UNI_PIXBUF_DRAW_METHOD_CONTAINS) { deltax = this.x - cache->old.zoom_rect.x; deltay = this.y - cache->old.zoom_rect.y; } else if (method == UNI_PIXBUF_DRAW_METHOD_SCROLL) { uni_pixbuf_draw_cache_intersect_draw (cache, opts); } else if (method == UNI_PIXBUF_DRAW_METHOD_SCALE) { int last_width = gdk_pixbuf_get_width (cache->last_pixbuf); int last_height = gdk_pixbuf_get_height (cache->last_pixbuf); GdkColorspace new_cs = gdk_pixbuf_get_colorspace (opts->pixbuf); GdkColorspace last_cs = gdk_pixbuf_get_colorspace (cache->last_pixbuf); int new_bps = gdk_pixbuf_get_bits_per_sample (opts->pixbuf); int last_bps = gdk_pixbuf_get_bits_per_sample (cache->last_pixbuf); if (this.width > last_width || this.height > last_height || new_cs != last_cs || new_bps != last_bps) { g_object_unref (cache->last_pixbuf); cache->last_pixbuf = gdk_pixbuf_new (new_cs, FALSE, new_bps, this.width, this.height); } uni_pixbuf_scale_blend (opts->pixbuf, cache->last_pixbuf, 0, 0, this.width, this.height, (double) -this.x, (double) -this.y, opts->zoom, opts->interp, this.x, this.y); } gdk_draw_pixbuf (window, NULL, cache->last_pixbuf, deltax, deltay, opts->widget_x, opts->widget_y, this.width, this.height, GDK_RGB_DITHER_MAX, opts->widget_x, opts->widget_y); if (method != UNI_PIXBUF_DRAW_METHOD_CONTAINS) cache->old = *opts; } Viewnior-viewnior-1.8/src/uni-cache.h000077500000000000000000000063011414645621200176300ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __UNI_CACHE_H__ #define __UNI_CACHE_H__ #include typedef struct _UniPixbufDrawOpts UniPixbufDrawOpts; typedef struct _UniPixbufDrawCache UniPixbufDrawCache; typedef enum { UNI_PIXBUF_DRAW_METHOD_SCALE = 0, UNI_PIXBUF_DRAW_METHOD_CONTAINS = 1, UNI_PIXBUF_DRAW_METHOD_SCROLL = 2 } UniPixbufDrawMethod; /** * UniPixbufDrawOpts: * * Struct which holds options for how the pixbuf should be * drawn. Options include such things like the source rectangle in the * pixbuf to draw, where to draw it, which zoom to use and so on. **/ struct _UniPixbufDrawOpts { gdouble zoom; /* Rectangle in zoom-space coordinates of the area to draw. */ GdkRectangle zoom_rect; /* Position in widget-space coordinates where to draw. */ int widget_x; int widget_y; GdkInterpType interp; GdkPixbuf *pixbuf; }; /** * UniPixbufDrawCache: * * Cache that ensures fast redraws by storing the last draw * operation. For example, when resizing a #UniImageView, the view * receives an expose event and must redraw the damaged region. Unless * fitting is %TRUE, most of the pixels it should draw are indentical * to the ones drawn the previous time. Redrawing them is wasteful * because scaling and especially bilinear scaling is very * slow. Therefore, PixbufDrawCache objectifies the drawing process * and adds a cache with the last draw from which pixels can be * fetched. * * This object is present purely to ensure optimal speed. A * #GtkIImageTool that is asked to redraw a part of the image view * widget could either do it by itself using gdk_pixbuf_scale() and * gdk_draw_pixbuf(). **/ struct _UniPixbufDrawCache { GdkPixbuf *last_pixbuf; UniPixbufDrawOpts old; int check_size; }; UniPixbufDrawCache* uni_pixbuf_draw_cache_new (void); void uni_pixbuf_draw_cache_free (UniPixbufDrawCache * cache); void uni_pixbuf_draw_cache_invalidate (UniPixbufDrawCache * cache); void uni_pixbuf_draw_cache_draw (UniPixbufDrawCache * cache, UniPixbufDrawOpts * opts, GdkWindow * window); UniPixbufDrawMethod uni_pixbuf_draw_cache_get_method (UniPixbufDrawOpts * old, UniPixbufDrawOpts * new_); #endif /* __UNI_CACHE_H__ */ Viewnior-viewnior-1.8/src/uni-dragger.c000077500000000000000000000146011414645621200201750ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include #include #include "uni-dragger.h" #include "uni-image-view.h" G_DEFINE_TYPE (UniDragger, uni_dragger, G_TYPE_OBJECT); /* Drag 'n Drop */ static GtkTargetEntry target_table[] = { { "text/uri-list", 0, 0}, }; /*************************************************************/ /***** Static stuff ******************************************/ /*************************************************************/ static void uni_dragger_grab_pointer (UniDragger * tool, GdkWindow * window, guint32 time) { int mask = (GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_RELEASE_MASK); gdk_pointer_grab (window, FALSE, mask, NULL, tool->grab_cursor, time); } static void uni_dragger_get_drag_delta (UniDragger * tool, int *x, int *y) { *x = tool->drag_base_x - tool->drag_ofs_x; *y = tool->drag_base_y - tool->drag_ofs_y; } /*************************************************************/ /***** Actions ***********************************************/ /*************************************************************/ gboolean uni_dragger_button_press (UniDragger * tool, GdkEventButton * ev) { uni_dragger_grab_pointer (tool, ev->window, ev->time); tool->pressed = TRUE; tool->drag_base_x = ev->x; tool->drag_base_y = ev->y; tool->drag_ofs_x = ev->x; tool->drag_ofs_y = ev->y; return TRUE; } gboolean uni_dragger_button_release (UniDragger * tool, GdkEventButton * ev) { if (ev->button != 1) return FALSE; gdk_pointer_ungrab (ev->time); tool->pressed = FALSE; tool->dragging = FALSE; return TRUE; } gboolean uni_dragger_motion_notify (UniDragger * tool, GdkEventMotion * ev) { GtkAdjustment * vadj; GtkAdjustment * hadj; if (tool->pressed) tool->dragging = TRUE; else return FALSE; tool->drag_ofs_x = ev->x; tool->drag_ofs_y = ev->y; int dx, dy; uni_dragger_get_drag_delta (tool, &dx, &dy); if (abs (dx) < 1 && abs (dy) < 1) return FALSE; vadj = UNI_IMAGE_VIEW(tool->view)->vadj; hadj = UNI_IMAGE_VIEW(tool->view)->hadj; if ( pow(dx, 2) + pow(dy, 2) > 7 && UNI_IMAGE_VIEW(tool->view)->pixbuf != NULL && gtk_adjustment_get_upper(vadj) <= gtk_adjustment_get_page_size(vadj) && gtk_adjustment_get_upper(hadj) <= gtk_adjustment_get_page_size(hadj) ) { uni_dragger_button_release (tool, (GdkEventButton*)ev); gtk_drag_begin (GTK_WIDGET(tool->view), gtk_target_list_new(target_table, G_N_ELEMENTS(target_table)), GDK_ACTION_COPY, 1, (GdkEvent*)ev); return TRUE; } GdkRectangle viewport; uni_image_view_get_viewport (UNI_IMAGE_VIEW (tool->view), &viewport); int offset_x = viewport.x + dx; int offset_y = viewport.y + dy; uni_image_view_set_offset (UNI_IMAGE_VIEW (tool->view), offset_x, offset_y, FALSE); tool->drag_base_x = tool->drag_ofs_x; tool->drag_base_y = tool->drag_ofs_y; return TRUE; } void uni_dragger_pixbuf_changed (UniDragger * tool, gboolean reset_fit, GdkRectangle * rect) { uni_pixbuf_draw_cache_invalidate (tool->cache); } void uni_dragger_paint_image (UniDragger * tool, UniPixbufDrawOpts * opts, GdkWindow * window) { uni_pixbuf_draw_cache_draw (tool->cache, opts, window); } /*************************************************************/ /***** Stuff that deals with the type ************************/ /*************************************************************/ static void uni_dragger_finalize (GObject * object) { UniDragger *dragger = UNI_DRAGGER (object); uni_pixbuf_draw_cache_free (dragger->cache); /* Chain up */ G_OBJECT_CLASS (uni_dragger_parent_class)->finalize (object); } enum { PROP_IMAGE_VIEW = 1 }; static void uni_dragger_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { UniDragger *dragger = UNI_DRAGGER (object); if (prop_id == PROP_IMAGE_VIEW) dragger->view = g_value_get_object (value); else G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } static void uni_dragger_class_init (UniDraggerClass * klass) { GObjectClass *object_class = (GObjectClass *) klass; object_class->finalize = uni_dragger_finalize; object_class->set_property = uni_dragger_set_property; GParamSpec *pspec = g_param_spec_object ("view", "Image View", "Image View to navigate", UNI_TYPE_IMAGE_VIEW, G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE); g_object_class_install_property (object_class, PROP_IMAGE_VIEW, pspec); } static void uni_dragger_init (UniDragger * tool) { tool->view = NULL; tool->cache = uni_pixbuf_draw_cache_new (); tool->pressed = FALSE; tool->dragging = FALSE; tool->drag_base_x = 0; tool->drag_base_y = 0; tool->drag_ofs_x = 0; tool->drag_ofs_y = 0; tool->grab_cursor = gdk_cursor_new (GDK_FLEUR); } /** * uni_dragger_new: * @view: a #UniImageView * @returns: a new #UniDragger * * Creates and returns a new dragger tool. **/ UniDragger * uni_dragger_new (GtkWidget * view) { g_return_val_if_fail (view != NULL, NULL); UniDragger *data; data = UNI_DRAGGER (g_object_new (UNI_TYPE_DRAGGER, "view", view, NULL)); return data; } Viewnior-viewnior-1.8/src/uni-dragger.h000077500000000000000000000057401414645621200202060ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __UNI_TOOL_DRAGGER_H__ #define __UNI_TOOL_DRAGGER_H__ #include #include #include "uni-cache.h" G_BEGIN_DECLS #define UNI_TYPE_DRAGGER (uni_dragger_get_type ()) #define UNI_DRAGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNI_TYPE_DRAGGER, UniDragger)) #define UNI_DRAGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNI_TYPE_DRAGGER, UniDraggerClass)) #define UNI_IS_DRAGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNI_TYPE_DRAGGER)) #define UNI_IS_DRAGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNI_TYPE_DRAGGER)) #define UNI_DRAGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNI_TYPE_DRAGGER, UniDraggerClass)) typedef struct _UniDragger UniDragger; typedef struct _UniDraggerClass UniDraggerClass; struct _UniDragger { GObject parent; GtkWidget *view; UniPixbufDrawCache *cache; gboolean pressed; gboolean dragging; /* Position where the mouse was pressed. */ int drag_base_x; int drag_base_y; /* Current position of the mouse. */ int drag_ofs_x; int drag_ofs_y; /* Cursor to use when grabbing. */ GdkCursor *grab_cursor; }; struct _UniDraggerClass { GObjectClass parent; }; GType uni_dragger_get_type (void) G_GNUC_CONST; /* Constructors */ UniDragger* uni_dragger_new (GtkWidget * view); /* Actions */ gboolean uni_dragger_button_press (UniDragger * tool, GdkEventButton * ev); gboolean uni_dragger_button_release (UniDragger * tool, GdkEventButton * ev); gboolean uni_dragger_motion_notify (UniDragger * tool, GdkEventMotion * ev); void uni_dragger_pixbuf_changed (UniDragger * tool, gboolean reset_fit, GdkRectangle * rect); void uni_dragger_paint_image (UniDragger * tool, UniPixbufDrawOpts * opts, GdkWindow * window); G_END_DECLS #endif /* __UNI_TOOL_DRAGGER_H__ */ Viewnior-viewnior-1.8/src/uni-exiv2.cpp000066400000000000000000000076101414645621200201560ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include #include #include "uni-exiv2.hpp" #define ARRAY_SIZE(array) (sizeof array/sizeof(array[0])) static Exiv2::Image::AutoPtr cached_image; extern "C" void uni_read_exiv2_map(const char *uri, void (*callback)(const char*, const char*, void*), void *user_data) { Exiv2::LogMsg::setLevel(Exiv2::LogMsg::mute); try { Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(uri); if ( image.get() == 0 ) { return; } image->readMetadata(); Exiv2::ExifData &exifData = image->exifData(); Exiv2::IptcData &iptcData = image->iptcData(); if ( !exifData.empty() ) { for ( uint i = 0; i < ARRAY_SIZE(exifDataDictionary); i++ ) { ExifDataDictionary dict = exifDataDictionary[i]; Exiv2::ExifData::const_iterator pos; if ( dict.finder == NULL ) { Exiv2::ExifKey key(dict.key); pos = exifData.findKey(key); } else { pos = dict.finder(exifData); } if ( pos != exifData.end() ) { callback(dict.label, pos->print(&exifData).c_str(), user_data); } } } std::string comment = image->comment(); if ( ! comment.empty() ) { callback( _("Comment"), comment.c_str(), user_data ); } if ( !iptcData.empty() ) { for ( uint i = 0; i < ARRAY_SIZE(iptcDataDictionary); i++ ) { IptcDataDictionary dict = iptcDataDictionary[i]; Exiv2::IptcKey key(dict.key); Exiv2::IptcData::const_iterator pos; pos = iptcData.findKey(key); if ( pos != iptcData.end() ) { callback(dict.label, pos->value().toString().c_str(), user_data); } } } } catch (Exiv2::AnyError& e) { std::cerr << "Exiv2: '" << e << "'\n"; } } extern "C" int uni_read_exiv2_to_cache(const char *uri) { Exiv2::LogMsg::setLevel(Exiv2::LogMsg::mute); if ( cached_image.get() != NULL ) { cached_image->clearMetadata(); cached_image.reset(NULL); } try { cached_image = Exiv2::ImageFactory::open(uri); if ( cached_image.get() == 0 ) { return 1; } cached_image->readMetadata(); } catch (Exiv2::AnyError& e) { std::cerr << "Exiv2: '" << e << "'\n"; } return 0; } extern "C" int uni_write_exiv2_from_cache(const char *uri) { Exiv2::LogMsg::setLevel(Exiv2::LogMsg::mute); if ( cached_image.get() == NULL ) { return 1; } try { Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(uri); if ( image.get() == 0 ) { return 2; } image->setMetadata( *cached_image ); image->writeMetadata(); cached_image->clearMetadata(); cached_image.reset(NULL); return 0; } catch (Exiv2::AnyError& e) { std::cerr << "Exiv2: '" << e << "'\n"; } return 0; } Viewnior-viewnior-1.8/src/uni-exiv2.hpp000066400000000000000000000057531414645621200201710ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __UNI_EXIV2__H_ #define __UNI_EXIV2__H_ #ifdef __cplusplus #include extern "C" { #include typedef Exiv2::ExifData::const_iterator (*ExifDataFinder)(const Exiv2::ExifData& ed); typedef struct _ExifDataDictionary ExifDataDictionary; typedef struct _IptcDataDictionary IptcDataDictionary; struct _ExifDataDictionary { const char *key; const char *label; ExifDataFinder finder; }; struct _IptcDataDictionary { const char *key; const char *label; }; ExifDataDictionary exifDataDictionary[] = { { "Exif.Image.UniqueCameraModel", _("Camera make"), Exiv2::make }, { "Exif.Image.LocalizedCameraModel", _("Camera model"), Exiv2::model }, { "Exif.Photo.DateTimeOriginal", _("Date Taken"), NULL }, { "Exif.Photo.ExposureTime", _("Exposure time"), Exiv2::exposureTime }, { "Exif.Photo.ExposureMode", _("Exposure mode"), Exiv2::exposureMode }, { "Exif.Photo.ApertureValue", _("Aperture Value"), NULL }, { "Exif.Photo.ISOSpeedRatings", _("ISO speed"), Exiv2::isoSpeed }, { "Exif.Photo.Flash", _("Flash"), NULL }, { "Exif.Photo.MeteringMode", _("Metering mode"), Exiv2::meteringMode }, { "Exif.Image.FocalLength", _("Focal length"), Exiv2::focalLength }, { "Exif.Image.Software", _("Software"), NULL }, { "Exif.Image.ImageDescription", _("Image description"), NULL }, { "Exif.Photo.UserComment", _("User comment"), NULL } }; IptcDataDictionary iptcDataDictionary[] = { { "Iptc.Application2.Caption", _("Description") }, { "Iptc.Application2.Copyright", _("Copyright") }, { "Iptc.Application2.Byline", _("Author") } }; #endif /* __cplusplus */ void uni_read_exiv2_map (const char *uri, void (*callback)(const char*, const char*, void*), void *user_data); int uni_read_exiv2_to_cache (const char *uri); int uni_write_exiv2_from_cache (const char *uri); #ifdef __cplusplus } /* end extern "C" */ #endif /* __cplusplus */ #endif /* __UNI_EXIV2__H_ */ Viewnior-viewnior-1.8/src/uni-image-view.c000077500000000000000000001327441414645621200206250ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include #include #include #include #include "uni-dragger.h" #include "uni-image-view.h" #include "uni-dragger.h" #include "uni-anim-view.h" #include "uni-marshal.h" #include "uni-zoom.h" #include "uni-utils.h" #include "vnr-window.h" #define g_signal_handlers_disconnect_by_data(instance, data) \ g_signal_handlers_disconnect_matched ((instance), G_SIGNAL_MATCH_DATA, \ 0, 0, NULL, NULL, (data)) #define g_signal_handlers_block_by_data(instance, data) \ g_signal_handlers_block_matched ((instance), G_SIGNAL_MATCH_DATA, \ 0, 0, NULL, NULL, (data)) #define g_signal_handlers_unblock_by_data(instance, data) \ g_signal_handlers_unblock_matched ((instance), G_SIGNAL_MATCH_DATA, \ 0, 0, NULL, NULL, (data)) /*************************************************************/ /***** Private data ******************************************/ /*************************************************************/ enum { SET_ZOOM, ZOOM_IN, ZOOM_OUT, SET_FITTING, SCROLL, ZOOM_CHANGED, PIXBUF_CHANGED, LAST_SIGNAL }; static guint uni_image_view_signals[LAST_SIGNAL] = { 0 }; G_DEFINE_TYPE (UniImageView, uni_image_view, GTK_TYPE_WIDGET); /*************************************************************/ /***** Static stuff ******************************************/ /*************************************************************/ static Size uni_image_view_get_pixbuf_size (UniImageView * view) { Size s = { 0, 0 }; if (!view->pixbuf) return s; s.width = gdk_pixbuf_get_width (view->pixbuf); s.height = gdk_pixbuf_get_height (view->pixbuf); return s; } static Size uni_image_view_get_allocated_size (UniImageView * view) { GtkAllocation allocation; gtk_widget_get_allocation (GTK_WIDGET (view), &allocation); Size size = { .width = allocation.width, .height = allocation.height }; return size; } static Size uni_image_view_get_zoomed_size (UniImageView * view) { Size size = uni_image_view_get_pixbuf_size (view); size.width = (int) (size.width * view->zoom + 0.5); size.height = (int) (size.height * view->zoom + 0.5); return size; } static void uni_image_view_clamp_offset (UniImageView * view, gdouble * x, gdouble * y) { Size alloc = uni_image_view_get_allocated_size (view); Size zoomed = uni_image_view_get_zoomed_size (view); *x = MIN (*x, zoomed.width - alloc.width); *y = MIN (*y, zoomed.height - alloc.height); *x = MAX (*x, 0); *y = MAX (*y, 0); } static void uni_image_view_update_adjustments (UniImageView * view) { Size zoomed = uni_image_view_get_zoomed_size (view); Size alloc = uni_image_view_get_allocated_size (view); gtk_adjustment_configure (view->hadj, view->offset_x, 0.0, zoomed.width, 20.0, alloc.width / 2, alloc.width); gtk_adjustment_configure (view->vadj, view->offset_y, 0.0, zoomed.height, 20.0, alloc.height / 2, alloc.height); g_signal_handlers_block_by_data (G_OBJECT (view->hadj), view); g_signal_handlers_block_by_data (G_OBJECT (view->vadj), view); gtk_adjustment_changed (view->hadj); gtk_adjustment_changed (view->vadj); g_signal_handlers_unblock_by_data (G_OBJECT (view->hadj), view); g_signal_handlers_unblock_by_data (G_OBJECT (view->vadj), view); } /** * This method must only be used by uni_image_view_zoom_to_fit () and * uni_image_view_set_zoom (). **/ static void uni_image_view_set_zoom_with_center (UniImageView * view, gdouble zoom, gdouble center_x, gdouble center_y, gboolean is_allocating) { gdouble zoom_ratio = zoom / view->zoom; Size zoomed = uni_image_view_get_zoomed_size (view); Size alloc = uni_image_view_get_allocated_size (view); gint x, y; x = alloc.width - zoomed.width; y = alloc.height - zoomed.height; x = (x<0)?0:x; y = (y<0)?0:y; gdouble offset_x, offset_y; offset_x = (view->offset_x + center_x -x/2) * zoom_ratio - center_x; offset_y = (view->offset_y + center_y -y/2) * zoom_ratio - center_y; view->zoom = zoom; uni_image_view_clamp_offset (view, &offset_x, &offset_y); view->offset_x = offset_x; view->offset_y = offset_y; if (!is_allocating && zoom_ratio != 1.0) { view->fitting = UNI_FITTING_NONE; uni_image_view_update_adjustments (view); gtk_widget_queue_draw (GTK_WIDGET (view)); } g_signal_emit (G_OBJECT (view), uni_image_view_signals[ZOOM_CHANGED], 0); } static void uni_image_view_set_zoom_no_center (UniImageView * view, gdouble zoom, gboolean is_allocating) { Size alloc = uni_image_view_get_allocated_size (view); gdouble center_x = alloc.width / 2.0; gdouble center_y = alloc.height / 2.0; uni_image_view_set_zoom_with_center (view, zoom, center_x, center_y, is_allocating); } static void uni_image_view_zoom_to_fit (UniImageView * view, gboolean is_allocating) { Size img = uni_image_view_get_pixbuf_size (view); Size alloc = uni_image_view_get_allocated_size (view); gdouble ratio_x = (gdouble) alloc.width / img.width; gdouble ratio_y = (gdouble) alloc.height / img.height; gdouble zoom = MIN (ratio_y, ratio_x); if (view->fitting == UNI_FITTING_NORMAL) zoom = CLAMP (zoom, UNI_ZOOM_MIN, 1.0); else if (view->fitting == UNI_FITTING_FULL) zoom = CLAMP (zoom, UNI_ZOOM_MIN, UNI_ZOOM_MAX); uni_image_view_set_zoom_no_center (view, zoom, is_allocating); } static void uni_image_view_draw_background (UniImageView * view, GdkRectangle * image_area, Size alloc) { GtkWidget *widget = GTK_WIDGET (view); int n; GtkStyle *style = gtk_widget_get_style (widget); GdkGC *gc = style->bg_gc[GTK_STATE_NORMAL]; GdkWindow *window = gtk_widget_get_window (widget); GdkRectangle borders[4]; GdkRectangle outer = { 0, 0, alloc.width, alloc.height }; uni_rectangle_get_rects_around (&outer, image_area, borders); for (n = 0; n < 4; n++) { // Not sure why incrementing the size is necessary. borders[n].width++; borders[n].height++; uni_draw_rect (window, gc, TRUE, &borders[n]); } } /** * uni_image_view_repaint_area: * @paint_rect: The rectangle on the widget that needs to be redrawn. * * Redraws the porition of the widget defined by @paint_rect. **/ static int uni_image_view_repaint_area (UniImageView * view, GdkRectangle * paint_rect) { if (view->is_rendering) return FALSE; // Do not draw zero size rectangles. if (!paint_rect->width || !paint_rect->height) return FALSE; view->is_rendering = TRUE; // Image area is the area on the widget occupied by the pixbuf. GdkRectangle image_area = {0, 0, 0, 0}; Size alloc = uni_image_view_get_allocated_size (view); uni_image_view_get_draw_rect (view, &image_area); if (image_area.x > 0 || image_area.y > 0 || image_area.width < alloc.width || image_area.height < alloc.height) { uni_image_view_draw_background (view, &image_area, alloc); } GtkWidget *widget = GTK_WIDGET (view); // Paint area is the area on the widget that should be redrawn. GdkRectangle paint_area = {0, 0, 0, 0}; gboolean intersects = gdk_rectangle_intersect (&image_area, paint_rect, &paint_area); if (intersects && view->pixbuf) { int src_x = (int) ((view->offset_x + (gdouble) paint_area.x - (gdouble) image_area.x) + 0.5); int src_y = (int) ((view->offset_y + (gdouble) paint_area.y - (gdouble) image_area.y) + 0.5); UniPixbufDrawOpts opts = { view->zoom, (GdkRectangle) {src_x, src_y, paint_area.width, paint_area.height}, paint_area.x, paint_area.y, view->interp, view->pixbuf }; uni_dragger_paint_image (UNI_DRAGGER(view->tool), &opts, gtk_widget_get_window (widget)); } view->is_rendering = FALSE; return TRUE; } /** * uni_image_view_fast_scroll: * * Actually scroll the views window using gdk_draw_drawable(). * GTK_WIDGET (view)->window is guaranteed to be non-NULL in this * function. **/ static void uni_image_view_fast_scroll (UniImageView * view, int delta_x, int delta_y) { GdkWindow *drawable = gtk_widget_get_window (GTK_WIDGET (view)); int src_x, src_y; int dest_x, dest_y; if (delta_x < 0) { src_x = 0; dest_x = -delta_x; } else { src_x = delta_x; dest_x = 0; } if (delta_y < 0) { src_y = 0; dest_y = -delta_y; } else { src_y = delta_y; dest_y = 0; } /* First move the part of the image that did not become hidden or shown by this operation. gdk_draw_drawable is probably very fast because it does not involve sending any data to the X11 server. Remember that X11 is weird shit. It does not remember how windows beneath other windows look like. So if another window overlaps this window, it will temporarily look corrupted. We fix that later by turning on "exposures." See below. */ GdkGC *gc = gdk_gc_new (drawable); Size alloc = uni_image_view_get_allocated_size (view); gdk_gc_set_exposures (gc, TRUE); gdk_draw_drawable (drawable, gc, drawable, src_x, src_y, dest_x, dest_y, alloc.width - abs (delta_x), alloc.height - abs (delta_y)); g_object_unref (gc); /* If we moved in both the x and y directions, two "strips" of the image becomes visible. One horizontal strip and one vertical strip. */ GdkRectangle horiz_strip = { 0, (delta_y < 0) ? 0 : alloc.height - abs (delta_y), alloc.width, abs (delta_y) }; uni_image_view_repaint_area (view, &horiz_strip); GdkRectangle vert_strip = { (delta_x < 0) ? 0 : alloc.width - abs (delta_x), 0, abs (delta_x), alloc.height }; uni_image_view_repaint_area (view, &vert_strip); /* Here is where we fix the weirdness mentioned above. I do not * really know why it works, but it does! */ GdkEvent *ev; while ((ev = gdk_event_get_graphics_expose (drawable)) != NULL) { GdkEventExpose *expose = (GdkEventExpose *) ev; int exp_count = expose->count; uni_image_view_repaint_area (view, &expose->area); gdk_event_free (ev); if (exp_count == 0) break; } } /** * uni_image_view_scroll_to: * @offset_x: X part of the offset in zoom space coordinates. * @offset_y: Y part of the offset in zoom space coordinates. * @set_adjustments: whether to update the adjustments. Because this * function is called from the adjustments callbacks, it needs to be * %FALSE to prevent infinite recursion. * @invalidate: whether to invalidate the view or redraw immedately, * see uni_image_view_set_offset() * * Set the offset of where in the image the #UniImageView should begin * to display image data. **/ static void uni_image_view_scroll_to (UniImageView * view, gdouble offset_x, gdouble offset_y, gboolean set_adjustments, gboolean invalidate) { GdkWindow *window; int delta_x, delta_y; uni_image_view_clamp_offset (view, &offset_x, &offset_y); /* Round avoids floating point to integer conversion errors. See */ delta_x = floor (offset_x - view->offset_x + 0.5); delta_y = floor (offset_y - view->offset_y + 0.5); /* Exit early if the scroll was smaller than one (zoom space) pixel. */ if (delta_x == 0 && delta_y == 0) return; view->offset_x = offset_x; view->offset_y = offset_y; window = gtk_widget_get_window (GTK_WIDGET (view)); if (window) { if (invalidate) gdk_window_invalidate_rect (window, NULL, TRUE); uni_image_view_fast_scroll (view, delta_x, delta_y); } if (!set_adjustments) return; g_signal_handlers_block_by_data (G_OBJECT (view->hadj), view); g_signal_handlers_block_by_data (G_OBJECT (view->vadj), view); gtk_adjustment_set_value (view->hadj, view->offset_x); gtk_adjustment_set_value (view->vadj, view->offset_y); g_signal_handlers_unblock_by_data (G_OBJECT (view->hadj), view); g_signal_handlers_unblock_by_data (G_OBJECT (view->vadj), view); } static void uni_image_view_scroll (UniImageView * view, GtkScrollType xscroll, GtkScrollType yscroll) { GtkAdjustment *hadj = view->hadj; GtkAdjustment *vadj = view->vadj; gdouble h_step = gtk_adjustment_get_step_increment (hadj); gdouble v_step = gtk_adjustment_get_step_increment (vadj); gdouble h_page = gtk_adjustment_get_page_increment (hadj); gdouble v_page = gtk_adjustment_get_page_increment (vadj); int xstep = 0; if (xscroll == GTK_SCROLL_STEP_LEFT) xstep = -h_step; else if (xscroll == GTK_SCROLL_STEP_RIGHT) xstep = h_step; else if (xscroll == GTK_SCROLL_PAGE_LEFT) xstep = -h_page; else if (xscroll == GTK_SCROLL_PAGE_RIGHT) xstep = h_page; int ystep = 0; if (yscroll == GTK_SCROLL_STEP_UP) ystep = -v_step; else if (yscroll == GTK_SCROLL_STEP_DOWN) ystep = v_step; else if (yscroll == GTK_SCROLL_PAGE_UP) ystep = -v_page; else if (yscroll == GTK_SCROLL_PAGE_DOWN) ystep = v_page; uni_image_view_scroll_to (view, view->offset_x + xstep, view->offset_y + ystep, TRUE, FALSE); } /*************************************************************/ /***** Private signal handlers *******************************/ /*************************************************************/ static void uni_image_view_realize (GtkWidget * widget) { UniImageView *view = UNI_IMAGE_VIEW (widget); gtk_widget_set_realized(widget, TRUE); GtkAllocation allocation; gtk_widget_get_allocation (widget, &allocation); GdkWindowAttr attrs; attrs.window_type = GDK_WINDOW_CHILD; attrs.x = allocation.x; attrs.y = allocation.y; attrs.width = allocation.width; attrs.height = allocation.height; attrs.wclass = GDK_INPUT_OUTPUT; attrs.visual = gtk_widget_get_visual (widget); attrs.colormap = gtk_widget_get_colormap (widget); attrs.event_mask = (gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK); int attr_mask = (GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP); GdkWindow *parent = gtk_widget_get_parent_window (widget); GdkWindow *window = gdk_window_new (parent, &attrs, attr_mask); gtk_widget_set_window (widget, window); gdk_window_set_user_data (window, view); GtkStyle *style = gtk_widget_get_style (widget); style = gtk_style_attach (style, window); gtk_widget_set_style (widget, style); gtk_style_set_background (style, window, GTK_STATE_NORMAL); view->void_cursor = gdk_cursor_new (GDK_ARROW); } static void uni_image_view_unrealize (GtkWidget * widget) { UniImageView *view = UNI_IMAGE_VIEW (widget); gdk_cursor_unref (view->void_cursor); GTK_WIDGET_CLASS (uni_image_view_parent_class)->unrealize (widget); } static void uni_image_view_size_allocate (GtkWidget * widget, GtkAllocation * alloc) { UniImageView *view = UNI_IMAGE_VIEW (widget); gtk_widget_set_allocation (widget, alloc); if (view->pixbuf && view->fitting != UNI_FITTING_NONE) uni_image_view_zoom_to_fit (view, TRUE); uni_image_view_clamp_offset (view, &view->offset_x, &view->offset_y); uni_image_view_update_adjustments (view); if (gtk_widget_get_realized (widget)) gdk_window_move_resize (gtk_widget_get_window (widget), alloc->x, alloc->y, alloc->width, alloc->height); } static int uni_image_view_expose (GtkWidget * widget, GdkEventExpose * ev) { return uni_image_view_repaint_area (UNI_IMAGE_VIEW (widget), &ev->area); } static int uni_image_view_button_press (GtkWidget * widget, GdkEventButton * ev) { gtk_widget_grab_focus(widget); UniImageView *view = UNI_IMAGE_VIEW (widget); VnrWindow *vnr_win = VNR_WINDOW(gtk_widget_get_toplevel(widget)); g_assert(gtk_widget_is_toplevel(GTK_WIDGET(vnr_win))); if(ev->type == GDK_2BUTTON_PRESS && ev->button == 1 && vnr_win->prefs->behavior_click == VNR_PREFS_CLICK_FULLSCREEN) { vnr_window_toggle_fullscreen(vnr_win); return 1; } else if(ev->type == GDK_2BUTTON_PRESS && ev->button == 1 && vnr_win->prefs->behavior_click == VNR_PREFS_CLICK_NEXT) { int width = gdk_window_get_width(gtk_widget_get_window(widget)); if(ev->x/width < 0.5) vnr_window_prev(vnr_win); else vnr_window_next(vnr_win, TRUE); return 1; } else if (ev->type == GDK_BUTTON_PRESS && ev->button == 1) { return uni_dragger_button_press (UNI_DRAGGER(view->tool), ev); } else if (ev->type == GDK_2BUTTON_PRESS && ev->button == 1) { if (view->fitting == UNI_FITTING_FULL || (view->fitting == UNI_FITTING_NORMAL && view->zoom != 1.0)) uni_image_view_set_zoom_with_center (view, 1., ev->x, ev->y, FALSE); else uni_image_view_set_fitting (view, UNI_FITTING_FULL); return 1; } else if(ev->type == GDK_BUTTON_PRESS && ev->button == 3) { gtk_menu_popup(GTK_MENU(VNR_WINDOW(gtk_widget_get_toplevel (widget))->popup_menu), NULL, NULL, NULL, NULL, ev->button, gtk_get_current_event_time()); } else if(ev->type == GDK_BUTTON_PRESS && ev->button == 8) { vnr_window_prev(vnr_win); } else if(ev->type == GDK_BUTTON_PRESS && ev->button == 9) { vnr_window_next(vnr_win, TRUE); } return 0; } static int uni_image_view_button_release (GtkWidget * widget, GdkEventButton * ev) { UniImageView *view = UNI_IMAGE_VIEW (widget); return uni_dragger_button_release (UNI_DRAGGER(view->tool), ev); } static int uni_image_view_motion_notify (GtkWidget * widget, GdkEventMotion * ev) { UniImageView *view = UNI_IMAGE_VIEW (widget); if (view->is_rendering) return FALSE; return uni_dragger_motion_notify (UNI_DRAGGER(view->tool), ev); } static gboolean uni_image_view_hadj_changed_cb (GObject * adj, UniImageView * view) { int offset_x; offset_x = gtk_adjustment_get_value (GTK_ADJUSTMENT (adj)); uni_image_view_scroll_to (view, offset_x, view->offset_y, FALSE, FALSE); return FALSE; } static gboolean uni_image_view_vadj_changed_cb (GObject * adj, UniImageView * view) { int offset_y; offset_y = gtk_adjustment_get_value (GTK_ADJUSTMENT (adj)); uni_image_view_scroll_to (view, view->offset_x, offset_y, FALSE, FALSE); return FALSE; } static int uni_image_view_scroll_event (GtkWidget * widget, GdkEventScroll * ev) { gdouble zoom; UniImageView *view = UNI_IMAGE_VIEW (widget); VnrWindow *vnr_win = VNR_WINDOW(gtk_widget_get_toplevel(widget)); g_assert(gtk_widget_is_toplevel(GTK_WIDGET(vnr_win))); /* Horizontal scroll left is equivalent to scroll up and right is * like scroll down. No idea if that is correct -- I have no input * device that can do horizontal scrolls. */ if (vnr_win->prefs->behavior_wheel == VNR_PREFS_WHEEL_ZOOM || (ev->state & GDK_CONTROL_MASK) != 0) { switch (ev->direction) { case GDK_SCROLL_LEFT: // In Zoom mode left/right scroll is used for navigation vnr_window_prev(vnr_win); break; case GDK_SCROLL_RIGHT: vnr_window_next(vnr_win, TRUE); break; case GDK_SCROLL_UP: if( ev->state & GDK_SHIFT_MASK ) { vnr_window_prev(vnr_win); } else { zoom = CLAMP (view->zoom * UNI_ZOOM_STEP, UNI_ZOOM_MIN, UNI_ZOOM_MAX); uni_image_view_set_zoom_with_center (view, zoom, ev->x, ev->y, FALSE); } break; default: if( ev->state & GDK_SHIFT_MASK ) { vnr_window_next(vnr_win, TRUE); } else { zoom = CLAMP (view->zoom / UNI_ZOOM_STEP, UNI_ZOOM_MIN, UNI_ZOOM_MAX); uni_image_view_set_zoom_with_center (view, zoom, ev->x, ev->y, FALSE); } } } else if(vnr_win->prefs->behavior_wheel == VNR_PREFS_WHEEL_NAVIGATE) { switch (ev->direction) { case GDK_SCROLL_LEFT: zoom = CLAMP (view->zoom * UNI_ZOOM_STEP, UNI_ZOOM_MIN, UNI_ZOOM_MAX); uni_image_view_set_zoom_with_center (view, zoom, ev->x, ev->y, FALSE); break; case GDK_SCROLL_RIGHT: zoom = CLAMP (view->zoom / UNI_ZOOM_STEP, UNI_ZOOM_MIN, UNI_ZOOM_MAX); uni_image_view_set_zoom_with_center (view, zoom, ev->x, ev->y, FALSE); break; case GDK_SCROLL_UP: if( ev->state & GDK_SHIFT_MASK ) { zoom = CLAMP (view->zoom * UNI_ZOOM_STEP, UNI_ZOOM_MIN, UNI_ZOOM_MAX); uni_image_view_set_zoom_with_center (view, zoom, ev->x, ev->y, FALSE); } else vnr_window_prev(vnr_win); break; default: if( ev->state & GDK_SHIFT_MASK ) { zoom = CLAMP (view->zoom / UNI_ZOOM_STEP, UNI_ZOOM_MIN, UNI_ZOOM_MAX); uni_image_view_set_zoom_with_center (view, zoom, ev->x, ev->y, FALSE); } else vnr_window_next(vnr_win, TRUE); } } else { switch (ev->direction) { case GDK_SCROLL_LEFT: uni_image_view_scroll (view, GTK_SCROLL_PAGE_LEFT, GTK_SCROLL_NONE); break; case GDK_SCROLL_RIGHT: uni_image_view_scroll (view, GTK_SCROLL_PAGE_RIGHT, GTK_SCROLL_NONE); break; case GDK_SCROLL_UP: if( ev->state & GDK_SHIFT_MASK ) uni_image_view_scroll (view, GTK_SCROLL_PAGE_LEFT, GTK_SCROLL_NONE); else uni_image_view_scroll (view, GTK_SCROLL_NONE, GTK_SCROLL_PAGE_UP); break; default: if( ev->state & GDK_SHIFT_MASK ) uni_image_view_scroll (view, GTK_SCROLL_PAGE_RIGHT, GTK_SCROLL_NONE); else uni_image_view_scroll (view, GTK_SCROLL_NONE, GTK_SCROLL_PAGE_DOWN); } } return TRUE; } static void uni_image_view_set_scroll_adjustments (UniImageView * view, GtkAdjustment * hadj, GtkAdjustment * vadj) { if (hadj && view->hadj && view->hadj != hadj) { g_signal_handlers_disconnect_by_data (G_OBJECT (view->hadj), view); g_object_unref (view->hadj); g_signal_connect (G_OBJECT (hadj), "value_changed", G_CALLBACK (uni_image_view_hadj_changed_cb), view); view->hadj = hadj; g_object_ref_sink (view->hadj); } if (vadj && view->vadj && view->vadj != vadj) { g_signal_handlers_disconnect_by_data (G_OBJECT (view->vadj), view); g_object_unref (view->vadj); g_signal_connect (G_OBJECT (vadj), "value_changed", G_CALLBACK (uni_image_view_vadj_changed_cb), view); view->vadj = vadj; g_object_ref_sink (view->vadj); } } /*************************************************************/ /***** Stuff that deals with the type ************************/ /*************************************************************/ static void uni_image_view_init (UniImageView * view) { gtk_widget_set_can_focus (GTK_WIDGET(view), TRUE); view->interp = GDK_INTERP_BILINEAR; view->fitting = UNI_FITTING_NORMAL; view->pixbuf = NULL; view->zoom = 1.0; view->offset_x = 0.0; view->offset_y = 0.0; view->is_rendering = FALSE; view->show_cursor = TRUE; view->void_cursor = NULL; view->tool = G_OBJECT (uni_dragger_new ((GtkWidget *) view)); view->hadj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 1.0, 0.0, 1.0, 1.0, 1.0)); view->vadj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 1.0, 0.0, 1.0, 1.0, 1.0)); g_object_ref_sink (view->hadj); g_object_ref_sink (view->vadj); GtkWidget *widget = (GtkWidget *) view; GtkAllocation allocation; gtk_widget_get_allocation (widget, &allocation); allocation.width = 0; allocation.height = 0; gtk_widget_set_allocation (widget, &allocation); } static void uni_image_view_finalize (GObject * object) { UniImageView *view = UNI_IMAGE_VIEW (object); if (view->hadj) { g_signal_handlers_disconnect_by_data (G_OBJECT (view->hadj), view); g_object_unref (view->hadj); view->hadj = NULL; } if (view->vadj) { g_signal_handlers_disconnect_by_data (G_OBJECT (view->vadj), view); g_object_unref (view->vadj); view->vadj = NULL; } if (view->pixbuf) { g_object_unref (view->pixbuf); view->pixbuf = NULL; } g_object_unref (view->tool); /* Chain up. */ G_OBJECT_CLASS (uni_image_view_parent_class)->finalize (object); } static void uni_image_view_init_signals (UniImageViewClass * klass) { uni_image_view_signals[SET_ZOOM] = g_signal_new ("set_zoom", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (UniImageViewClass, set_zoom), NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); uni_image_view_signals[ZOOM_IN] = g_signal_new ("zoom_in", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (UniImageViewClass, zoom_in), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); uni_image_view_signals[ZOOM_OUT] = g_signal_new ("zoom_out", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (UniImageViewClass, zoom_out), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); uni_image_view_signals[SET_FITTING] = g_signal_new ("set_fitting", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (UniImageViewClass, set_fitting), NULL, NULL, g_cclosure_marshal_VOID__ENUM, G_TYPE_NONE, 1, G_TYPE_INT); uni_image_view_signals[SCROLL] = g_signal_new ("scroll", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (UniImageViewClass, scroll), NULL, NULL, uni_marshal_VOID__ENUM_ENUM, G_TYPE_NONE, 2, GTK_TYPE_SCROLL_TYPE, GTK_TYPE_SCROLL_TYPE); uni_image_view_signals[ZOOM_CHANGED] = g_signal_new ("zoom_changed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /** * UniImageView::pixbuf-changed: * @view: The view that emitted the signal. * * The ::pixbuf-changed signal is emitted when the pixbuf the * image view shows is changed and when its image data is changed. * Listening to this signal is useful if you, for example, have a * label that displays the width and height of the pixbuf in the * view. **/ uni_image_view_signals[PIXBUF_CHANGED] = g_signal_new ("pixbuf_changed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (UniImageViewClass, pixbuf_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void uni_image_view_class_init (UniImageViewClass * klass) { uni_image_view_init_signals (klass); GObjectClass *object_class = (GObjectClass *) klass; object_class->finalize = uni_image_view_finalize; GtkWidgetClass *widget_class = (GtkWidgetClass *) klass; widget_class->button_press_event = uni_image_view_button_press; widget_class->button_release_event = uni_image_view_button_release; widget_class->expose_event = uni_image_view_expose; widget_class->motion_notify_event = uni_image_view_motion_notify; widget_class->realize = uni_image_view_realize; widget_class->scroll_event = uni_image_view_scroll_event; widget_class->size_allocate = uni_image_view_size_allocate; widget_class->unrealize = uni_image_view_unrealize; klass->set_zoom = uni_image_view_set_zoom; klass->zoom_in = uni_image_view_zoom_in; klass->zoom_out = uni_image_view_zoom_out; klass->set_fitting = uni_image_view_set_fitting; klass->scroll = uni_image_view_scroll; klass->pixbuf_changed = NULL; /** * UniImageView::set-scroll-adjustments * * Do we really need this signal? It should be intrinsic to the * GtkWidget class, shouldn't it? **/ widget_class->set_scroll_adjustments_signal = g_signal_new ("set_scroll_adjustments", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (UniImageViewClass, set_scroll_adjustments), NULL, NULL, uni_marshal_VOID__POINTER_POINTER, G_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT); klass->set_scroll_adjustments = uni_image_view_set_scroll_adjustments; /* Add keybindings. */ GtkBindingSet *binding_set = gtk_binding_set_by_class (klass); /* Set zoom. */ gtk_binding_entry_add_signal (binding_set, GDK_KEY_1, 0, "set_zoom", 1, G_TYPE_DOUBLE, 1.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_2, 0, "set_zoom", 1, G_TYPE_DOUBLE, 2.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_3, 0, "set_zoom", 1, G_TYPE_DOUBLE, 3.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_1, 0, "set_zoom", 1, G_TYPE_DOUBLE, 1.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_2, 0, "set_zoom", 1, G_TYPE_DOUBLE, 2.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_3, 0, "set_zoom", 1, G_TYPE_DOUBLE, 3.0); /* Zoom in */ gtk_binding_entry_add_signal (binding_set, GDK_KEY_plus, 0, "zoom_in", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_equal, 0, "zoom_in", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Add, 0, "zoom_in", 0); /* Zoom out */ gtk_binding_entry_add_signal (binding_set, GDK_KEY_minus, 0, "zoom_out", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Subtract, 0, "zoom_out", 0); /* Set fitting */ gtk_binding_entry_add_signal (binding_set, GDK_KEY_f, 0, "set_fitting", 1, G_TYPE_ENUM, UNI_FITTING_FULL); gtk_binding_entry_add_signal (binding_set, GDK_KEY_0, 0, "set_fitting", 1, G_TYPE_ENUM, UNI_FITTING_FULL); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_0, 0, "set_fitting", 1, G_TYPE_ENUM, UNI_FITTING_FULL); /* Unmodified scrolling */ gtk_binding_entry_add_signal (binding_set, GDK_KEY_Right, 0, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_RIGHT, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Left, 0, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_LEFT, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Down, 0, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_DOWN); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Up, 0, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_UP); /* Shifted scrolling */ gtk_binding_entry_add_signal (binding_set, GDK_KEY_Right, GDK_SHIFT_MASK, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_RIGHT, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Left, GDK_SHIFT_MASK, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_LEFT, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Up, GDK_SHIFT_MASK, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_UP); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Down, GDK_SHIFT_MASK, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_DOWN); /* Page Up & Down */ gtk_binding_entry_add_signal (binding_set, GDK_KEY_Page_Up, 0, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_UP); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Page_Down, 0, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_DOWN); } /** * uni_image_view_new: * @returns: a new #UniImageView. * * Creates a new image view with default values. **/ GtkWidget * uni_image_view_new (void) { GtkWidget *view = g_object_new (UNI_TYPE_IMAGE_VIEW, NULL); return view; } /*************************************************************/ /***** Read-only properties **********************************/ /*************************************************************/ /** * uni_image_view_get_viewport: * @view: a #UniImageView * @rect: a #GdkRectangle to fill in with the current viewport or * %NULL. * @returns: %TRUE if a #GdkPixbuf is shown, %FALSE otherwise. * * Fills in the rectangle with the current viewport. If pixbuf is * %NULL, there is no viewport, @rect is left untouched and %FALSE is * returned. * * The current viewport is defined as the rectangle, in zoomspace * coordinates as the area of the loaded pixbuf the #UniImageView is * currently showing. **/ gboolean uni_image_view_get_viewport (UniImageView * view, GdkRectangle * rect) { gboolean ret_val = (view->pixbuf != NULL); if (!rect || !ret_val) return ret_val; Size alloc = uni_image_view_get_allocated_size (view); Size zoomed = uni_image_view_get_zoomed_size (view); rect->x = view->offset_x; rect->y = view->offset_y; rect->width = MIN (alloc.width, zoomed.width); rect->height = MIN (alloc.height, zoomed.height); return TRUE; } /** * uni_image_view_get_draw_rect: * @view: a #UniImageView * @rect: a #GdkRectangle to fill in with the area of the widget in * which the pixbuf is drawn. * @returns: %TRUE if the view is allocated and has a pixbuf, %FALSE * otherwise. * * Get the rectangle in the widget where the pixbuf is painted. * * For example, if the widgets allocated size is 100, 100 and the * pixbufs size is 50, 50 and the zoom factor is 1.0, then the pixbuf * will be drawn centered on the widget. @rect will then be * (25,25)-[50,50]. * * This method is useful when converting from widget to image or zoom * space coordinates. **/ gboolean uni_image_view_get_draw_rect (UniImageView * view, GdkRectangle * rect) { if (!view->pixbuf) return FALSE; Size alloc = uni_image_view_get_allocated_size (view); Size zoomed = uni_image_view_get_zoomed_size (view); rect->x = (alloc.width - zoomed.width) / 2; rect->y = (alloc.height - zoomed.height) / 2; rect->x = MAX (rect->x, 0); rect->y = MAX (rect->y, 0); rect->width = MIN (zoomed.width, alloc.width); rect->height = MIN (zoomed.height, alloc.height); return TRUE; } /*************************************************************/ /***** Write-only properties *********************************/ /*************************************************************/ /** * uni_image_view_set_offset: * @view: A #UniImageView. * @x: X-component of the offset in zoom space coordinates. * @y: Y-component of the offset in zoom space coordinates. * @invalidate: whether to invalidate the view or redraw immediately. * * Sets the offset of where in the image the #UniImageView should * begin displaying image data. * * The offset is clamped so that it will never cause the #UniImageView * to display pixels outside the pixbuf. Setting this attribute causes * the widget to repaint itself if it is realized. * * If @invalidate is %TRUE, the views entire area will be invalidated * instead of redrawn immediately. The view is then queued for redraw, * which means that additional operations can be performed on it * before it is redrawn. * * The difference can sometimes be important like when you are * overlaying data and get flicker or artifacts when setting the * offset. If that happens, setting @invalidate to %TRUE could fix the * problem. See the source code to #GtkImageToolSelector for an * example. * * Normally, @invalidate should always be %FALSE because it is much * faster to repaint immedately than invalidating. **/ void uni_image_view_set_offset (UniImageView * view, gdouble offset_x, gdouble offset_y, gboolean invalidate) { uni_image_view_scroll_to (view, offset_x, offset_y, TRUE, invalidate); } /*************************************************************/ /***** Read-write properties *********************************/ /*************************************************************/ void uni_image_view_set_fitting (UniImageView * view, UniFittingMode fitting) { g_return_if_fail (UNI_IS_IMAGE_VIEW (view)); view->fitting = fitting; gtk_widget_queue_resize (GTK_WIDGET (view)); } /** * uni_image_view_get_pixbuf: * @view: A #UniImageView. * @returns: The pixbuf this view shows. * * Returns the pixbuf this view shows. **/ GdkPixbuf * uni_image_view_get_pixbuf (UniImageView * view) { g_return_val_if_fail (UNI_IS_IMAGE_VIEW (view), NULL); return view->pixbuf; } /** * uni_image_view_set_pixbuf: * @view: A #UniImageView. * @pixbuf: The pixbuf to display. * @reset_fit: Whether to reset fitting or not. * * Sets the @pixbuf to display, or %NULL to not display any pixbuf. * Normally, @reset_fit should be %TRUE which enables fitting. Which * means that, initially, the whole pixbuf will be shown. * * Sometimes, the fit mode should not be reset. For example, if * UniImageView is showing an animation, it would be bad to reset the * fit mode for each new frame. The parameter should then be %FALSE * which leaves the fit mode of the view untouched. * * This method should not be used if merely the contents of the pixbuf * has changed. See uni_image_view_damage_pixels() for that. * * If @reset_fit is %TRUE, the ::zoom-changed signal is emitted, * otherwise not. The ::pixbuf-changed signal is also emitted. * * The default pixbuf is %NULL. **/ void uni_image_view_set_pixbuf (UniImageView * view, GdkPixbuf * pixbuf, gboolean reset_fit) { if (view->pixbuf != pixbuf) { if (view->pixbuf) g_object_unref (view->pixbuf); view->pixbuf = pixbuf; if (view->pixbuf) g_object_ref (pixbuf); } if (reset_fit) uni_image_view_set_fitting (view, UNI_FITTING_NORMAL); else { /* If the size of the pixbuf changes, the offset might point to pixels outside it so we use uni_image_view_scroll_to() to make it valid again. And if the size is different, naturally we must also update the adjustments. */ uni_image_view_scroll_to (view, view->offset_x, view->offset_y, FALSE, FALSE); uni_image_view_update_adjustments (view); gtk_widget_queue_draw (GTK_WIDGET (view)); } g_signal_emit (G_OBJECT (view), uni_image_view_signals[PIXBUF_CHANGED], 0); uni_dragger_pixbuf_changed (UNI_DRAGGER(view->tool), reset_fit, NULL); } /** * uni_image_view_set_zoom: * @view: a #UniImageView * @zoom: the new zoom factor * * Sets the zoom of the view. * * Fitting is always disabled after this method has run. The * ::zoom-changed signal is unconditionally emitted. **/ void uni_image_view_set_zoom (UniImageView * view, gdouble zoom) { g_return_if_fail (UNI_IS_IMAGE_VIEW (view)); zoom = CLAMP (zoom, UNI_ZOOM_MIN, UNI_ZOOM_MAX); uni_image_view_set_zoom_no_center (view, zoom, FALSE); } void uni_image_view_set_zoom_mode (UniImageView * view, VnrPrefsZoom mode) { switch(mode) { case VNR_PREFS_ZOOM_NORMAL: uni_image_view_set_fitting(view, UNI_FITTING_NONE); //view->zoom = 1.0; uni_image_view_set_zoom (view, 1.0); break; case VNR_PREFS_ZOOM_FIT: uni_image_view_set_fitting(view, UNI_FITTING_FULL); break; case VNR_PREFS_ZOOM_SMART: uni_image_view_set_fitting(view, UNI_FITTING_NORMAL); break; default: break; } } /*************************************************************/ /***** Actions ***********************************************/ /*************************************************************/ /** * uni_image_view_zoom_in: * @view: a #UniImageView * * Zoom in the view one step. Calling this method causes the widget to * immediately repaint itself. **/ void uni_image_view_zoom_in (UniImageView * view) { gdouble zoom; zoom = CLAMP (view->zoom * UNI_ZOOM_STEP, UNI_ZOOM_MIN, UNI_ZOOM_MAX); uni_image_view_set_zoom (view, zoom); } /** * uni_image_view_zoom_out: * @view: a #UniImageView * * Zoom out the view one step. Calling this method causes the widget to * immediately repaint itself. **/ void uni_image_view_zoom_out (UniImageView * view) { gdouble zoom; zoom = CLAMP (view->zoom / UNI_ZOOM_STEP, UNI_ZOOM_MIN, UNI_ZOOM_MAX); uni_image_view_set_zoom (view, zoom); } Viewnior-viewnior-1.8/src/uni-image-view.h000077500000000000000000000107031414645621200206200ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __UNI_IMAGE_VIEW_H__ #define __UNI_IMAGE_VIEW_H__ #include #include #include "vnr-prefs.h" G_BEGIN_DECLS #define UNI_TYPE_IMAGE_VIEW (uni_image_view_get_type ()) #define UNI_IMAGE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNI_TYPE_IMAGE_VIEW, UniImageView)) #define UNI_IMAGE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNI_TYPE_IMAGE_VIEW, UniImageViewClass)) #define UNI_IS_IMAGE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNI_TYPE_IMAGE_VIEW)) #define UNI_IS_IMAGE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNI_TYPE_IMAGE_VIEW)) #define UNI_IMAGE_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNI_TYPE_IMAGE_VIEW, UniImageViewClass)) typedef struct _UniImageView UniImageView; typedef struct _UniImageViewClass UniImageViewClass; typedef enum { UNI_FITTING_NONE, /* Fitting disabled */ UNI_FITTING_NORMAL, /* Fitting enabled. Max zoom: 1x */ UNI_FITTING_FULL, /* Fitting enabled. Max zoom: UNI_ZOOM_MAX */ } UniFittingMode; struct _UniImageView { GtkWidget parent; gboolean is_rendering; GdkInterpType interp; UniFittingMode fitting; GdkPixbuf *pixbuf; gdouble zoom; /* Offset in zoom space coordinates of the image area in the * widget. */ gdouble offset_x; gdouble offset_y; gboolean show_cursor; GdkCursor *void_cursor; GtkAdjustment *hadj; GtkAdjustment *vadj; GObject *tool; }; struct _UniImageViewClass { GtkWidgetClass parent_class; /* Keybinding signals. */ void (*set_zoom) (UniImageView * view, gdouble zoom); void (*zoom_in) (UniImageView * view); void (*zoom_out) (UniImageView * view); void (*set_fitting) (UniImageView * view, UniFittingMode fitting); void (*scroll) (UniImageView * view, GtkScrollType xscroll, GtkScrollType yscroll); /* Non-keybinding signals. */ void (*set_scroll_adjustments) (UniImageView * view, GtkAdjustment * hadj, GtkAdjustment * vadj); void (*pixbuf_changed) (UniImageView * view); }; GType uni_image_view_get_type (void) G_GNUC_CONST; /* Constructors */ GtkWidget* uni_image_view_new (void); /* Read-only properties */ gboolean uni_image_view_get_viewport (UniImageView * view, GdkRectangle * rect); gboolean uni_image_view_get_draw_rect (UniImageView * view, GdkRectangle * rect); /* Write-only properties */ void uni_image_view_set_offset (UniImageView * view, gdouble x, gdouble y, gboolean invalidate); /* Read-write properties */ void uni_image_view_set_fitting (UniImageView * view, UniFittingMode fitting); GdkPixbuf* uni_image_view_get_pixbuf (UniImageView * view); void uni_image_view_set_pixbuf (UniImageView * view, GdkPixbuf * pixbuf, gboolean reset_fit); void uni_image_view_set_zoom (UniImageView * view, gdouble zoom); void uni_image_view_set_zoom_mode (UniImageView * view, VnrPrefsZoom mode); /* Actions */ void uni_image_view_zoom_in (UniImageView * view); void uni_image_view_zoom_out (UniImageView * view); void uni_image_view_damage_pixels(UniImageView * view, GdkRectangle * rect); G_END_DECLS #endif /* __UNI_IMAGE_VIEW_H__ */ Viewnior-viewnior-1.8/src/uni-marshal.list000077500000000000000000000000461414645621200207400ustar00rootroot00000000000000VOID:ENUM, ENUM VOID:POINTER, POINTER Viewnior-viewnior-1.8/src/uni-nav.c000077500000000000000000000351641414645621200173550ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include "uni-nav.h" #include "uni-utils.h" G_DEFINE_TYPE (UniNav, uni_nav, GTK_TYPE_WINDOW); /*************************************************************/ /***** Static stuff ******************************************/ /*************************************************************/ static gdouble uni_nav_get_zoom (UniNav * nav) { GdkPixbuf *pixbuf = uni_image_view_get_pixbuf (nav->view); /* If there is no image, we can't get it's width and height */ if (!pixbuf) { return 0.0; } int img_width = gdk_pixbuf_get_width (pixbuf); int img_height = gdk_pixbuf_get_height (pixbuf); gdouble width_zoom = (gdouble) UNI_NAV_MAX_WIDTH / (gdouble) img_width; gdouble height_zoom = (gdouble) UNI_NAV_MAX_HEIGHT / (gdouble) img_height; return MIN (width_zoom, height_zoom); } static Size uni_nav_get_preview_size (UniNav * nav) { GdkPixbuf *pixbuf = uni_image_view_get_pixbuf (nav->view); if (!pixbuf) return (Size) { UNI_NAV_MAX_WIDTH, UNI_NAV_MAX_HEIGHT}; int img_width = gdk_pixbuf_get_width (pixbuf); int img_height = gdk_pixbuf_get_height (pixbuf); gdouble zoom = uni_nav_get_zoom (nav); Size s; s.width = (int) (img_width * zoom + 0.5); s.height = (int) (img_height * zoom + 0.5); return s; } static gdouble uni_nav_get_zoom2nav_factor (UniNav * nav) { gdouble nav_zoom = uni_nav_get_zoom (nav); gdouble view_zoom = nav->view->zoom; return view_zoom / nav_zoom; } static GdkRectangle gtk_image_get_current_rectangle (UniNav * nav) { GdkRectangle rect = {0, 0, 0, 0}; uni_image_view_get_viewport (nav->view, &rect); /* Convert Zoom space to Nav space coordinates. */ gdouble zoom2nav_factor = uni_nav_get_zoom2nav_factor (nav); rect.x = (gdouble) rect.x / zoom2nav_factor; rect.y = (gdouble) rect.y / zoom2nav_factor; rect.width = (gdouble) rect.width / zoom2nav_factor; rect.height = (gdouble) rect.height / zoom2nav_factor; return rect; } static void uni_nav_draw_rectangle (UniNav * nav, gboolean clear_last) { GdkWindow * window; GdkRectangle rect; window = gtk_widget_get_window (nav->preview); rect = gtk_image_get_current_rectangle (nav); /* Clear the last drawn rectangle. */ if (clear_last) gdk_draw_rectangle (window, nav->gc, FALSE, nav->last_rect.x, nav->last_rect.y, nav->last_rect.width, nav->last_rect.height); gdk_draw_rectangle (window, nav->gc, FALSE, rect.x, rect.y, rect.width, rect.height); nav->last_rect = rect; } static void uni_nav_update_position (UniNav * nav) { /* If the Navigation is opened, we don't have to move it again! */ if (gtk_widget_get_visible (GTK_WIDGET (nav))) { return; } int off_x, off_y, x, y; GdkRectangle rect; /* Calculate position of popup. */ Size pw = uni_nav_get_preview_size (nav); rect = gtk_image_get_current_rectangle (nav); /* 3 is the rectangle's line width, defined in nav->gc */ off_x = rect.x + rect.width / 2 + 3; off_y = rect.y + rect.height / 2 + 3; x = nav->center_x - off_x; y = nav->center_y - off_y; /* Popup shoudn't be out of the screen */ x = CLAMP (x, 0, gdk_screen_width () - pw.width); y = CLAMP (y, 0, gdk_screen_height () - pw.height); gtk_window_move (GTK_WINDOW (nav), x, y); } static void uni_nav_update_pixbuf (UniNav * nav) { if (nav->pixbuf) { g_object_unref (nav->pixbuf); nav->pixbuf = NULL; } GdkPixbuf *pixbuf = uni_image_view_get_pixbuf (nav->view); if (!pixbuf) return; Size pw = uni_nav_get_preview_size (nav); nav->pixbuf = gdk_pixbuf_new (gdk_pixbuf_get_colorspace (pixbuf), gdk_pixbuf_get_has_alpha (pixbuf), 8, pw.width, pw.height); uni_pixbuf_scale_blend (pixbuf, nav->pixbuf, 0, 0, pw.width, pw.height, 0, 0, uni_nav_get_zoom (nav), GDK_INTERP_BILINEAR, 0, 0); // Lower the flag so the pixbuf isn't recreated more than // necessarily. nav->update_when_shown = FALSE; } /*************************************************************/ /***** Private signal handlers *******************************/ /*************************************************************/ static gboolean uni_nav_expose_drawing_area (GtkWidget * widget, GdkEventExpose * ev, UniNav * nav) { GdkWindow * window; GtkStyle * style; if (!nav->pixbuf) return FALSE; window = gtk_widget_get_window (nav->preview); style = gtk_widget_get_style (nav->preview); gdk_draw_pixbuf (window, style->white_gc, nav->pixbuf, 0, 0, 0, 0, -1, -1, GDK_RGB_DITHER_MAX, 0, 0); uni_nav_draw_rectangle (nav, FALSE); uni_nav_update_position (nav); return TRUE; } /** * uni_nav_key_press: * * Keyboard events are catched just to forward them to the * #UniImageView which responds to them. That way, keyboard navigation * in #UniNav behaves consistently with #UniImageView. **/ static int uni_nav_key_press (GtkWidget * widget, GdkEventKey * ev) { UniNav *nav = UNI_NAV (widget); int retval = gtk_bindings_activate (GTK_OBJECT (nav->view), ev->keyval, ev->state); uni_nav_draw_rectangle (nav, TRUE); return retval; } static int uni_nav_motion_notify (GtkWidget * widget, GdkEventMotion * ev) { UniNav *nav = UNI_NAV (widget); int mx, my; gdk_window_get_pointer (gtk_widget_get_window (widget), &mx, &my, NULL); /* Make coordinates relative to window. */ mx -= 4; my -= 4; /* Convert Nav space to Zoom space coordinates. */ gdouble zoom2nav_factor = uni_nav_get_zoom2nav_factor (nav); GdkRectangle rect; uni_image_view_get_viewport (nav->view, &rect); /* Convert Zoom space to Nav space coordinates. */ rect.width = (gdouble) rect.width / zoom2nav_factor; rect.height = (gdouble) rect.height / zoom2nav_factor; /* Subtract half of the XOR rectangles size from the coordinates. */ mx -= (rect.width / 2); my -= (rect.height / 2); /* Do the adjusted coordinate conversion. */ int zoom_x_ofs = mx * zoom2nav_factor; int zoom_y_ofs = my * zoom2nav_factor; uni_image_view_set_offset (nav->view, zoom_x_ofs, zoom_y_ofs, TRUE); uni_nav_draw_rectangle (nav, TRUE); return TRUE; } static void uni_nav_pixbuf_changed (UniNav * nav) { Size pw = uni_nav_get_preview_size (nav); // Set the new size and position of the preview. gtk_widget_set_size_request (GTK_WIDGET (nav->preview), pw.width, pw.height); uni_nav_update_position (nav); // If the widget is showing, then create the downsampled pixbuf. // Otherwise, just set a flag so that it is done later. nav->update_when_shown = TRUE; if (!gtk_widget_get_visible (GTK_WIDGET(nav))) return; uni_nav_update_pixbuf (nav); gtk_widget_queue_draw (GTK_WIDGET (nav)); } /** * uni_nav_zoom_changed: * * Callback that is called whenever the zoom of the #UniImageView * changes. * * This function is needed because the zoom of the view may change * after a call to uni_image_view_set_zoom() due to the widget being * queued for size allocation. **/ static void uni_nav_zoom_changed (UniNav * nav) { uni_nav_draw_rectangle (nav, TRUE); } /** * uni_nav_button_released: * * Callback that is called whenever a mouse button is released. If LMB * is released, the nav is hidden. **/ static void uni_nav_button_released (UniNav * nav, GdkEventButton * ev) { if (ev->button != 1) return; uni_nav_release (nav); gtk_widget_hide (GTK_WIDGET (nav)); } static void uni_nav_realize (GtkWidget * widget) { GTK_WIDGET_CLASS (uni_nav_parent_class)->realize (widget); UniNav *nav = UNI_NAV (widget); nav->gc = gdk_gc_new (gtk_widget_get_window (widget)); gdk_gc_set_function (nav->gc, GDK_INVERT); gdk_gc_set_line_attributes (nav->gc, 3, GDK_LINE_SOLID, GDK_CAP_BUTT, GDK_JOIN_MITER); } static void uni_nav_unrealize (GtkWidget * widget) { g_object_unref (UNI_NAV (widget)->gc); GTK_WIDGET_CLASS (uni_nav_parent_class)->unrealize (widget); } /*************************************************************/ /***** Stuff that deals with the type ************************/ /*************************************************************/ static void uni_nav_init (UniNav * nav) { nav->view = NULL; nav->gc = NULL; nav->last_rect = (GdkRectangle) { -1, -1, -1, -1}; nav->update_when_shown = FALSE; GtkWidget *out_frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (out_frame), GTK_SHADOW_OUT); gtk_container_add (GTK_CONTAINER (nav), out_frame); nav->preview = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER (out_frame), nav->preview); g_signal_connect (G_OBJECT (nav->preview), "expose_event", G_CALLBACK (uni_nav_expose_drawing_area), nav); } static void uni_nav_finalize (GObject * object) { UniNav *nav = UNI_NAV (object); if (nav->pixbuf) { g_object_unref (nav->pixbuf); nav->pixbuf = NULL; } /* Chain up. */ G_OBJECT_CLASS (uni_nav_parent_class)->finalize (object); } enum { PROP_IMAGE_VIEW = 1 }; static void uni_nav_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { UniNav *nav = UNI_NAV (object); if (prop_id == PROP_IMAGE_VIEW) { nav->view = g_value_get_object (value); /* Give initial state to the widget. */ uni_nav_pixbuf_changed (nav); g_signal_connect_swapped (G_OBJECT (nav->view), "pixbuf_changed", G_CALLBACK (uni_nav_pixbuf_changed), nav); } else G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } static void uni_nav_class_init (UniNavClass * klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = uni_nav_finalize; object_class->set_property = uni_nav_set_property; GParamSpec *pspec = g_param_spec_object ("view", "Image View", "Image View to navigate", UNI_TYPE_IMAGE_VIEW, G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE); g_object_class_install_property (object_class, PROP_IMAGE_VIEW, pspec); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); widget_class->key_press_event = uni_nav_key_press; widget_class->motion_notify_event = uni_nav_motion_notify; widget_class->realize = uni_nav_realize; widget_class->unrealize = uni_nav_unrealize; } /** * uni_nav_new: * @view: a #UniImageView. * @returns: a new #UniNav showing the view. * * Creates a new #UniNav for showing thumbnails of the view. The * default values are is pixbuf=NULL. **/ GtkWidget * uni_nav_new (UniImageView * view) { g_return_val_if_fail (view, NULL); gpointer data = g_object_new (UNI_TYPE_NAV, "type", GTK_WINDOW_POPUP, /* The window must be non-resizable, otherwise it will not respond correctly to size requests which shrinks it. */ "resizable", FALSE, "view", view, NULL); return GTK_WIDGET (data); } /*************************************************************/ /***** Actions ***********************************************/ /*************************************************************/ void uni_nav_grab (UniNav * nav) { GtkWidget *preview = nav->preview; GdkWindow *window; gtk_grab_add (preview); GdkCursor *cursor = gdk_cursor_new (GDK_FLEUR); int mask = (GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXTENSION_EVENTS_ALL); window = gtk_widget_get_window (preview); gdk_pointer_grab (window, TRUE, mask, window, cursor, 0); gdk_cursor_unref (cursor); /* Capture keyboard events. */ gdk_keyboard_grab (window, TRUE, GDK_CURRENT_TIME); gtk_widget_grab_focus (preview); } void uni_nav_release (UniNav * nav) { gdk_pointer_ungrab (GDK_CURRENT_TIME); /* Release keyboard focus. */ gdk_keyboard_ungrab (GDK_CURRENT_TIME); gtk_grab_remove (nav->preview); } /*************************************************************/ /***** Runner function ***************************************/ /*************************************************************/ /** * uni_nav_show_and_grab: * @nav: a #UniNav * @center_x: x coordinate of center position * @center_y: y coordinate of center position * * Show the #UniNav centered around the point (@center_x, * @center_y) and grab mouse and keyboard events. The grab continues * until a button release event is received which causes the widget to * hide. **/ void uni_nav_show_and_grab (UniNav * nav, int center_x, int center_y) { nav->center_x = center_x; nav->center_y = center_y; uni_nav_update_position (nav); if (nav->update_when_shown) uni_nav_update_pixbuf (nav); /* Connect signals and run! */ gtk_widget_show_all (GTK_WIDGET (nav)); uni_nav_grab (nav); g_signal_connect (G_OBJECT (nav), "button-release-event", G_CALLBACK (uni_nav_button_released), NULL); g_signal_connect_swapped (G_OBJECT (nav->view), "zoom_changed", G_CALLBACK (uni_nav_zoom_changed), nav); } Viewnior-viewnior-1.8/src/uni-nav.h000077500000000000000000000060301414645621200173500ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __UNI_NAV_H__ #define __UNI_NAV_H__ /** * #UniNav is a popup window that shows a map of a * #UniImageView. The user can then zoom around in the area. **/ #include #include #include "uni-image-view.h" G_BEGIN_DECLS #define UNI_TYPE_NAV (uni_nav_get_type ()) #define UNI_NAV(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNI_TYPE_NAV, UniNav)) #define UNI_NAV_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNI_TYPE_NAV, UniNavClass)) #define UNI_IS_NAV(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNI_TYPE_NAV)) #define UNI_IS_NAV_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNI_TYPE_NAV)) #define UNI_NAV_GET_CLASS(obj) (G_TYPE_CHECK_INSTANCE_GET_CLASS ((obj), UNI_TYPE_NAV, UniNavClass)) /** * UNI_NAV_MAX_WIDTH: * * The maximum width of the drawing area in the widget. **/ #define UNI_NAV_MAX_WIDTH 150 /** * UNI_NAV_MAX_HEIGHT: * * The maximum height of the drawing area in the widget. **/ #define UNI_NAV_MAX_HEIGHT 150 typedef struct _UniNav UniNav; typedef struct _UniNavClass UniNavClass; struct _UniNav { GtkWindow parent; /* A GtkDrawingArea to draw the image in. */ GtkWidget *preview; /* The UniImageView that is navigated. */ UniImageView *view; /* A downsampled version of the UniImageView's pixbuf to display. */ GdkPixbuf *pixbuf; /* The last drawn XOR rectangle. */ GdkRectangle last_rect; /* Center coordinate of where UniNav is mapped. */ int center_x; int center_y; /* To draw the preview square. */ GdkGC *gc; /* A flag indicating whether the pixbuf needs to be recreated when the navigator is shown. */ gboolean update_when_shown; }; struct _UniNavClass { GtkWindowClass parent_class; }; GType uni_nav_get_type (void) G_GNUC_CONST; /* Constructors */ GtkWidget* uni_nav_new (UniImageView * view); /* Actions */ void uni_nav_grab (UniNav * nav); void uni_nav_release (UniNav * nav); /* Runner function */ void uni_nav_show_and_grab (UniNav * nav, int center_x, int center_y); G_END_DECLS #endif /* __UNI_NAV_H__ */ Viewnior-viewnior-1.8/src/uni-scroll-win.c000077500000000000000000000250301414645621200206510ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include #define _(String) gettext (String) #include "uni-scroll-win.h" #include "uni-image-view.h" #include "uni-nav.h" /*************************************************************/ /***** PRIVATE DATA ******************************************/ /*************************************************************/ static const char *nav_button[] = { /* columns rows colors chars-per-pixel */ "14 14 2 1 ", " c black", ". c None", /* pixels */ "...... ......", "..... .....", ".... ....", "...... ......", ".. ... ... ..", ". ... ... .", " ", " ", ". ... ... .", ".. ... ... ..", "...... ......", ".... ....", "..... .....", "...... ......" }; G_DEFINE_TYPE (UniScrollWin, uni_scroll_win, GTK_TYPE_TABLE); /*************************************************************/ /***** Static stuff ******************************************/ /*************************************************************/ static void uni_scroll_win_show_scrollbar (UniScrollWin * window, gboolean show) { if (show) { gtk_widget_show_now (window->vscroll); gtk_widget_show_now (window->hscroll); gtk_widget_show_now (window->nav_box); } else { gtk_widget_hide (window->vscroll); gtk_widget_hide (window->hscroll); gtk_widget_hide (window->nav_box); } } static void uni_scroll_win_adjustment_changed (GtkAdjustment * adj, UniScrollWin * window) { uni_scroll_win_show_scrollbar (window, window->show_scrollbar && !uni_scroll_win_image_fits (window)); } static void uni_scroll_win_nav_btn_clicked (UniScrollWin * window, GdkEventButton * ev) { uni_nav_show_and_grab (UNI_NAV (window->nav), ev->x_root, ev->y_root); } static void uni_scroll_win_set_view (UniScrollWin * window, UniImageView * view) { // Setup the scrollbars GtkAdjustment *hadj; hadj = (GtkAdjustment *) g_object_new (GTK_TYPE_ADJUSTMENT, NULL); GtkAdjustment *vadj; vadj = (GtkAdjustment *) g_object_new (GTK_TYPE_ADJUSTMENT, NULL); window->hscroll = gtk_hscrollbar_new (hadj); window->vscroll = gtk_vscrollbar_new (vadj); // We want to be notified when the adjustments change. g_signal_connect (hadj, "changed", G_CALLBACK (uni_scroll_win_adjustment_changed), window); g_signal_connect (vadj, "changed", G_CALLBACK (uni_scroll_win_adjustment_changed), window); // Output the adjustments to the widget. gtk_widget_set_scroll_adjustments (GTK_WIDGET (view), hadj, vadj); // Add the widgets to the table. gtk_widget_push_composite_child (); gtk_table_attach (GTK_TABLE (window), GTK_WIDGET (view), 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_table_attach (GTK_TABLE (window), window->vscroll, 1, 2, 0, 1, GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_table_attach (GTK_TABLE (window), window->hscroll, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); gtk_table_attach (GTK_TABLE (window), window->nav_box, 1, 2, 1, 2, GTK_SHRINK, GTK_SHRINK, 0, 0); gtk_widget_pop_composite_child (); // Create the UniNav popup. window->nav = uni_nav_new (view); } /*************************************************************/ /***** Private signal handlers *******************************/ /*************************************************************/ /* The size request signal needs to be implemented and return two constant dummy values, otherwise an infinite loop may occur when UniScrollWin is placed in a non-bounded container. When the scroll adjustments of UniImageView changes, uni_scroll_win_adjustment_changed will be called which may instruct GTK to show the scrollbars. When the scrollbars are shown the size has to be renegotiated. Because UniScrollWin now shows the widgets which it didn't before, it will be allocated a bigger space. The bigger space allocation is propagated down to UniImageView which updates its adjustments accordingly. Because of the bigger space, the scrollbars might not be needed anymore. uni_scroll_win_adjustment_changed is invoked again which may hide the scrollbars. Because UniScrollWin now hides widgets it previously showed, the size has to be renegotiated. UniScrollWin finds out that the size is now to small so the scrollbars has to be shown after all. And so it continues. */ static void uni_scroll_win_size_request (GtkWidget * widget, GtkRequisition * req) { /* Chain up. */ GTK_WIDGET_CLASS (uni_scroll_win_parent_class)->size_request (widget, req); req->width = req->height = 200; } /*************************************************************/ /***** Stuff that deals with the type ************************/ /*************************************************************/ static void uni_scroll_win_init (UniScrollWin * window) { window->hscroll = NULL; window->vscroll = NULL; window->nav_box = NULL; window->nav = NULL; window->show_scrollbar = FALSE; // Setup the navigator button. window->nav_button = gdk_pixbuf_new_from_xpm_data (nav_button); window->nav_image = gtk_image_new_from_pixbuf (window->nav_button); window->nav_box = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (window->nav_box), window->nav_image); g_signal_connect_swapped (G_OBJECT (window->nav_box), "button_press_event", G_CALLBACK (uni_scroll_win_nav_btn_clicked), window); gtk_widget_set_tooltip_text (window->nav_box, _("Open the navigator window")); } static void uni_scroll_win_finalize (GObject * object) { UniScrollWin *window = UNI_SCROLL_WIN (object); g_object_unref (window->nav_button); /* Maybe window->nav should be unreferenced here.. But uh I don't know how. */ gtk_widget_destroy (window->nav); /* Chain up. */ G_OBJECT_CLASS (uni_scroll_win_parent_class)->finalize (object); } enum { PROP_IMAGE_VIEW = 1 }; static void uni_scroll_win_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { UniScrollWin *window = UNI_SCROLL_WIN (object); if (prop_id == PROP_IMAGE_VIEW) uni_scroll_win_set_view (window, g_value_get_object (value)); else G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } static void uni_scroll_win_class_init (UniScrollWinClass * klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = uni_scroll_win_finalize; object_class->set_property = uni_scroll_win_set_property; GParamSpec *pspec = g_param_spec_object ("view", "Image View", "Image View to navigate", UNI_TYPE_IMAGE_VIEW, G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE); g_object_class_install_property (object_class, PROP_IMAGE_VIEW, pspec); GtkWidgetClass *widget_class = (GtkWidgetClass *) klass; widget_class->size_request = uni_scroll_win_size_request; } /** * uni_scroll_win_new: * @view: a #UniImageView to show. * @returns: A new #UniScrollWin. * * Creates a new #UniScrollWin containing the #UniImageView. * * The widget is built using four subwidgets arranged inside a * #GtkTable with two columns and two rows. Two scrollbars, one * navigator button (the decorations) and one #UniImageView. * * When the #UniImageView fits inside the window, the decorations are * hidden. **/ GtkWidget * uni_scroll_win_new (UniImageView * view) { gpointer data = g_object_new (UNI_TYPE_SCROLL_WIN, "n-columns", 2, "n-rows", 2, "homogeneous", FALSE, "view", view, NULL); return GTK_WIDGET (data); } /** * uni_scroll_win_image_fits: * @window: the #UniScrollWin to inspect. * @returns: A boolean indicating if the image fits in the window * * Check if the current image fits in the window without the need to scoll. * The check is performed as if scrollbars are not visible. **/ gboolean uni_scroll_win_image_fits (UniScrollWin * window) { GtkAdjustment *hadj, *vadj; GtkAllocation allocation; hadj = gtk_range_get_adjustment (GTK_RANGE (window->hscroll)); vadj = gtk_range_get_adjustment (GTK_RANGE (window->vscroll)); gtk_widget_get_allocation (GTK_WIDGET (window), &allocation); /* We compare with the allocation size for the window instead of hadj->page_size and vadj->page_size. If the scrollbars are shown the views size is about 15 pixels shorter and thinner, which makes the page sizes inaccurate. The scroll windows allocation, on the other hand, always gives the correct number of pixels that COULD be shown if the scrollbars weren't there. */ return gtk_adjustment_get_upper (hadj) <= allocation.width && gtk_adjustment_get_upper (vadj) <= allocation.height; } /** * uni_scroll_win_set_show_scrollbar: * @window: the #UniScrollWin to adjust. * * Show or hide the scrollbar. * The scrollbar will only be shown if the image doesn't fit in the window. **/ void uni_scroll_win_set_show_scrollbar (UniScrollWin * window, gboolean show) { window->show_scrollbar = show; uni_scroll_win_show_scrollbar (window, window->show_scrollbar && !uni_scroll_win_image_fits (window)); } Viewnior-viewnior-1.8/src/uni-scroll-win.h000077500000000000000000000050311414645621200206550ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __UNI_SCROLL_WIN_H__ #define __UNI_SCROLL_WIN_H__ /** * UniScrollWin is a class that implements a type of * GtkScrolledWindow which is more integrated with UniImageView. **/ #include #include #include "uni-nav.h" G_BEGIN_DECLS #define UNI_TYPE_SCROLL_WIN (uni_scroll_win_get_type ()) #define UNI_SCROLL_WIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNI_TYPE_SCROLL_WIN, UniScrollWin)) #define UNI_SCROLL_WIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNI_TYPE_SCROLL_WIN, UniScrollWinClass)) #define UNI_IS_SCROLL_WIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNI_TYPE_SCROLL_WIN)) #define UNI_IS_SCROLL_WIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNI_TYPE_SCROLL_WIN)) #define UNI_SCROLL_WIN_GET_CLASS(obj) (G_TYPE_CHECK_INSTANCE_GET_CLASS ((obj), UNI_TYPE_SCROLL_WIN, UniScrollWinClass)) typedef struct _UniScrollWin UniScrollWin; typedef struct _UniScrollWinClass UniScrollWinClass; struct _UniScrollWin { GtkTable parent; GtkWidget *hscroll; GtkWidget *vscroll; GtkWidget *nav_box; GtkWidget *nav; /* The GtkImage that shows the nav_button icon. */ GtkWidget *nav_image; /* The normal and the highlighted nav_button pixbuf. */ GdkPixbuf *nav_button; gboolean show_scrollbar; }; struct _UniScrollWinClass { GtkTableClass parent_class; }; GType uni_scroll_win_get_type (void) G_GNUC_CONST; /* Constructors */ GtkWidget* uni_scroll_win_new (UniImageView * view); gboolean uni_scroll_win_image_fits (UniScrollWin * window); void uni_scroll_win_set_show_scrollbar (UniScrollWin * window, gboolean show); G_END_DECLS #endif /* __UNI_SCROLL_WIN_H__ */ Viewnior-viewnior-1.8/src/uni-utils.c000077500000000000000000000117711414645621200177270ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include "uni-utils.h" /** * uni_pixbuf_scale_blend: * * A utility function that either scales or composites color depending * on the number of channels in the source image. The last four * parameters are only used in the composite color case. **/ void uni_pixbuf_scale_blend (GdkPixbuf * src, GdkPixbuf * dst, int dst_x, int dst_y, int dst_width, int dst_height, gdouble offset_x, gdouble offset_y, gdouble zoom, GdkInterpType interp, int check_x, int check_y) { if (gdk_pixbuf_get_has_alpha (src)) gdk_pixbuf_composite_color (src, dst, dst_x, dst_y, dst_width, dst_height, offset_x, offset_y, zoom, zoom, interp, 255, check_x, check_y, CHECK_SIZE, CHECK_LIGHT, CHECK_DARK); else gdk_pixbuf_scale (src, dst, dst_x, dst_y, dst_width, dst_height, offset_x, offset_y, zoom, zoom, interp); } /** * uni_draw_rect: * * This function is a fixed version of gdk_draw_rectangle. The GDK * function is broken in that drawing a the rectangle (0,0)-[0,0] will * draw a pixel at position (0,0). **/ void uni_draw_rect (GdkWindow * window, GdkGC * gc, gboolean filled, GdkRectangle * rect) { if (rect->width <= 0 || rect->height <= 0) return; gdk_draw_rectangle (window, gc, filled, rect->x, rect->y, rect->width - 1, rect->height - 1); } void uni_rectangle_get_rects_around (GdkRectangle * outer, GdkRectangle * inner, GdkRectangle around[4]) { /* Top */ around[0] = (GdkRectangle) { outer->x, outer->y, outer->width, inner->y - outer->y}; /* Left */ around[1] = (GdkRectangle) { outer->x, inner->y, inner->x - outer->x, inner->height}; /* Right */ around[2] = (GdkRectangle) { inner->x + inner->width, inner->y, (outer->x + outer->width) - (inner->x + inner->width), inner->height}; /* Bottom */ around[3] = (GdkRectangle) { outer->x, inner->y + inner->height, outer->width, (outer->y + outer->height) - (inner->y + inner->height)}; } VnrPrefsDesktop uni_detect_desktop_environment () { VnrPrefsDesktop environment = VNR_PREFS_DESKTOP_GNOME3; gchar *xdg_current_desktop = g_ascii_strup(g_getenv("XDG_CURRENT_DESKTOP"), -1); gchar *xdg_session_desktop = g_ascii_strup(g_getenv("XDG_SESSION_DESKTOP"), -1); gchar *desktop_session = g_ascii_strdown(g_getenv("DESKTOP_SESSION"), -1); gchar *gdmsession = g_ascii_strdown(g_getenv("GDMSESSION"), -1); if (!g_strcmp0(xdg_current_desktop, "GNOME") || !g_strcmp0(xdg_session_desktop, "GNOME")) { if (!g_strcmp0(gdmsession, "gnome-classic") || !g_strcmp0(gdmsession, "gnome-fallback")) { environment = VNR_PREFS_DESKTOP_GNOME2; } else if (!g_strcmp0(gdmsession, "cinnamon")) { environment = VNR_PREFS_DESKTOP_CINNAMON; } } else if (!g_strcmp0(xdg_current_desktop, "XFCE") || !g_strcmp0(xdg_session_desktop, "XFCE")) { environment = VNR_PREFS_DESKTOP_XFCE; } else if (!g_strcmp0(xdg_current_desktop, "MATE") || !g_strcmp0(xdg_session_desktop, "MATE")) { environment = VNR_PREFS_DESKTOP_MATE; } else if (!g_strcmp0(xdg_current_desktop, "LXDE") || !g_strcmp0(xdg_session_desktop, "LXDE")) { environment = VNR_PREFS_DESKTOP_LXDE; } else if (!g_strcmp0(desktop_session, "fluxbox")) { environment = VNR_PREFS_DESKTOP_FLUXBOX; } else { g_warning("Cannot detect desktop environment. Defaulting to GNOME 3.\n"); } g_free(xdg_current_desktop); g_free(xdg_session_desktop); g_free(desktop_session); g_free(gdmsession); return environment; } Viewnior-viewnior-1.8/src/uni-utils.h000077500000000000000000000040711414645621200177270ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * Based on code by (see README for details): * - Björn Lindqvist * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __UNI_UTILS_H__ #define __UNI_UTILS_H__ #include #include "vnr-prefs.h" #define CHECK_SIZE 8 #define CHECK_LIGHT 0x00cccccc #define CHECK_DARK 0x00808080 typedef struct { int width; int height; } Size; void uni_pixbuf_scale_blend (GdkPixbuf * src, GdkPixbuf * dst, int dst_x, int dst_y, int dst_width, int dst_height, gdouble offset_x, gdouble offset_y, gdouble zoom, GdkInterpType interp, int check_x, int check_y); void uni_draw_rect (GdkWindow * window, GdkGC * gc, gboolean filled, GdkRectangle * rect); void uni_rectangle_get_rects_around (GdkRectangle * outer, GdkRectangle * inner, GdkRectangle around[4]); VnrPrefsDesktop uni_detect_desktop_environment (); #endif /* __UNI_UTILS_H__ */ Viewnior-viewnior-1.8/src/uni-zoom.h000077500000000000000000000016711414645621200175560ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __UNI_ZOOM_H__ #define __UNI_ZOOM_H__ #include G_BEGIN_DECLS #define UNI_ZOOM_MIN 0.02 #define UNI_ZOOM_MAX 20.0 #define UNI_ZOOM_STEP 1.1 G_END_DECLS #endif /* __UNI_ZOOM_H__ */ Viewnior-viewnior-1.8/src/vnr-crop.c000066400000000000000000000347161414645621200175450ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include "vnr-crop.h" #include "vnr-tools.h" #include "uni-utils.h" #include "uni-image-view.h" #define CROP_UI_PATH PACKAGE_DATA_DIR"/viewnior/vnr-crop-dialog.ui" G_DEFINE_TYPE (VnrCrop, vnr_crop, G_TYPE_OBJECT); static void spin_x_cb (GtkSpinButton *spinbutton, VnrCrop *crop); static void spin_width_cb (GtkSpinButton *spinbutton, VnrCrop *crop); static void spin_y_cb (GtkSpinButton *spinbutton, VnrCrop *crop); static void spin_height_cb (GtkSpinButton *spinbutton, VnrCrop *crop); static gboolean drawable_expose_cb (GtkWidget *widget, GdkEventExpose *event, VnrCrop *crop); static gboolean drawable_button_press_cb (GtkWidget *widget, GdkEventButton *event, VnrCrop *crop); static gboolean drawable_button_release_cb (GtkWidget *widget, GdkEventButton *event, VnrCrop *crop); static gboolean drawable_motion_cb (GtkWidget *widget, GdkEventMotion *event, VnrCrop *crop); /*************************************************************/ /***** Private actions ***************************************/ /*************************************************************/ static void vnr_crop_draw_rectangle(VnrCrop *crop) { if(crop->do_redraw) gdk_draw_rectangle (gtk_widget_get_window(crop->image), crop->gc, FALSE, crop->sub_x, crop->sub_y, crop->sub_width, crop->sub_height); } static inline void vnr_crop_clear_rectangle(VnrCrop *crop) { vnr_crop_draw_rectangle (crop); } static void vnr_crop_check_sub_y(VnrCrop *crop) { if(gtk_spin_button_get_value(crop->spin_height) + gtk_spin_button_get_value(crop->spin_y) == crop->vnr_win->current_image_height) { crop->sub_y = (int)crop->height - (int)crop->sub_height; } } static void vnr_crop_check_sub_x(VnrCrop *crop) { if(gtk_spin_button_get_value(crop->spin_width) + gtk_spin_button_get_value(crop->spin_x) == crop->vnr_win->current_image_width) { crop->sub_x = (int)crop->width - (int)crop->sub_width; } } static void vnr_crop_update_spin_button_values (VnrCrop *crop) { gtk_spin_button_set_value (crop->spin_height, crop->sub_height / crop->zoom); gtk_spin_button_set_value (crop->spin_width, crop->sub_width / crop->zoom); gtk_spin_button_set_value (crop->spin_x, crop->sub_x / crop->zoom); gtk_spin_button_set_value (crop->spin_y, crop->sub_y / crop->zoom); } static GtkWidget * vnr_crop_build_dialog (VnrCrop *crop) { GtkBuilder *builder; GtkWidget *window; GdkPixbuf *original; GdkPixbuf *preview; GError *error = NULL; builder = gtk_builder_new (); gtk_builder_add_from_file (builder, CROP_UI_PATH, &error); if (error != NULL) { g_warning ("%s\n", error->message); g_object_unref(builder); return NULL; } window = GTK_WIDGET (gtk_builder_get_object (builder, "crop-dialog")); gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(crop->vnr_win)); original = uni_image_view_get_pixbuf(UNI_IMAGE_VIEW(crop->vnr_win->view)); gdouble width, height; gint max_width, max_height; width = crop->vnr_win->current_image_width; height = crop->vnr_win->current_image_height; { GdkScreen *screen; GdkRectangle monitor; screen = gtk_window_get_screen (GTK_WINDOW (crop->vnr_win)); gdk_screen_get_monitor_geometry (screen, gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (GTK_WIDGET (crop->vnr_win))), &monitor); max_width = monitor.width * 0.9 - 100; max_height = monitor.height * 0.9 - 200; } vnr_tools_fit_to_size_double(&width, &height, max_width, max_height); crop->width = width; crop->height = height; crop->zoom = ( width/crop->vnr_win->current_image_width + height/crop->vnr_win->current_image_height )/2; preview = gdk_pixbuf_new (gdk_pixbuf_get_colorspace (original), gdk_pixbuf_get_has_alpha (original), gdk_pixbuf_get_bits_per_sample (original), width, height); uni_pixbuf_scale_blend(original, preview, 0, 0, width, height, 0, 0, crop->zoom, GDK_INTERP_BILINEAR, 0, 0); crop->preview_pixbuf = preview; crop->image = GTK_WIDGET (gtk_builder_get_object (builder, "main-image")); gtk_widget_set_size_request(crop->image, width, height); crop->spin_x = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "spin-x")); gtk_spin_button_set_range (crop->spin_x, 0, crop->vnr_win->current_image_width - 1); gtk_spin_button_set_increments (crop->spin_x, 1, 10); crop->spin_y = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "spin-y")); gtk_spin_button_set_range (crop->spin_y, 0, crop->vnr_win->current_image_height - 1); gtk_spin_button_set_increments (crop->spin_y, 1, 10); crop->spin_width = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "spin-width")); gtk_spin_button_set_range (crop->spin_width, 1, crop->vnr_win->current_image_width); gtk_spin_button_set_increments (crop->spin_width, 1, 10); gtk_spin_button_set_value (crop->spin_width, crop->vnr_win->current_image_width); crop->spin_height = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "spin-height")); gtk_spin_button_set_range (crop->spin_height, 1, crop->vnr_win->current_image_height); gtk_spin_button_set_increments (crop->spin_height, 1, 10); gtk_spin_button_set_value (crop->spin_height, crop->vnr_win->current_image_height); gtk_widget_set_events (crop->image, GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK|GDK_BUTTON_MOTION_MASK); g_signal_connect (crop->image, "expose-event", G_CALLBACK (drawable_expose_cb), crop); g_signal_connect (crop->image, "button-press-event", G_CALLBACK (drawable_button_press_cb), crop); g_signal_connect (crop->image, "button-release-event", G_CALLBACK (drawable_button_release_cb), crop); g_signal_connect (crop->image, "motion-notify-event", G_CALLBACK (drawable_motion_cb), crop); g_signal_connect (crop->spin_width, "value-changed", G_CALLBACK (spin_width_cb), crop); g_signal_connect (crop->spin_x, "value-changed", G_CALLBACK (spin_x_cb), crop); g_signal_connect (crop->spin_height, "value-changed", G_CALLBACK (spin_height_cb), crop); g_signal_connect (crop->spin_y, "value-changed", G_CALLBACK (spin_y_cb), crop); g_object_unref(builder); return window; } /*************************************************************/ /***** Private signal handlers *******************************/ /*************************************************************/ static void spin_x_cb (GtkSpinButton *spinbutton, VnrCrop *crop) { if(crop->drawing_rectangle) return; vnr_crop_clear_rectangle (crop); gboolean old_do_redraw = crop->do_redraw; crop->do_redraw = FALSE; gtk_spin_button_set_range (crop->spin_width, 1, crop->vnr_win->current_image_width - gtk_spin_button_get_value(spinbutton)); crop->do_redraw = old_do_redraw; crop->sub_x = gtk_spin_button_get_value (spinbutton) * crop->zoom; vnr_crop_check_sub_x(crop); vnr_crop_draw_rectangle (crop); } static void spin_width_cb (GtkSpinButton *spinbutton, VnrCrop *crop) { if(crop->drawing_rectangle) return; vnr_crop_clear_rectangle (crop); crop->sub_width = gtk_spin_button_get_value (spinbutton) * crop->zoom; if(crop->sub_width <1) crop->sub_width = 1; vnr_crop_draw_rectangle (crop); } static void spin_y_cb (GtkSpinButton *spinbutton, VnrCrop *crop) { if(crop->drawing_rectangle) return; vnr_crop_clear_rectangle (crop); gboolean old_do_redraw = crop->do_redraw; crop->do_redraw = FALSE; gtk_spin_button_set_range (crop->spin_height, 1, crop->vnr_win->current_image_height - gtk_spin_button_get_value(spinbutton)); crop->do_redraw = old_do_redraw; crop->sub_y = gtk_spin_button_get_value(spinbutton) * crop->zoom; vnr_crop_check_sub_y(crop); vnr_crop_draw_rectangle (crop); } static void spin_height_cb (GtkSpinButton *spinbutton, VnrCrop *crop) { if(crop->drawing_rectangle) return; vnr_crop_clear_rectangle (crop); crop->sub_height = gtk_spin_button_get_value(spinbutton) * crop->zoom; if(crop->sub_height <1) crop->sub_height = 1; vnr_crop_draw_rectangle (crop); } static gboolean drawable_expose_cb (GtkWidget *widget, GdkEventExpose *event, VnrCrop *crop) { GdkWindow *window = gtk_widget_get_window(widget); gdk_draw_pixbuf (window, NULL, crop->preview_pixbuf, 0, 0, 0, 0, -1, -1, GDK_RGB_DITHER_NORMAL, 0, 0); crop->gc = gdk_gc_new(window); gdk_gc_set_function (crop->gc, GDK_INVERT); gdk_gc_set_line_attributes (crop->gc, 2, GDK_LINE_SOLID, GDK_CAP_BUTT, GDK_JOIN_MITER); if(crop->sub_width == -1) { crop->sub_x = 0; crop->sub_y = 0; crop->sub_width = crop->width; crop->sub_height = crop->height; } vnr_crop_clear_rectangle (crop); return FALSE; } static gboolean drawable_button_press_cb (GtkWidget *widget, GdkEventButton *event, VnrCrop *crop) { if(event->button == 1) { crop->drawing_rectangle = TRUE; crop->start_x = event->x; crop->start_y = event->y; } return FALSE; } static gboolean drawable_button_release_cb (GtkWidget *widget, GdkEventButton *event, VnrCrop *crop) { if(event->button == 1) { crop->drawing_rectangle = FALSE; gtk_spin_button_set_range(crop->spin_width, 1, (crop->width - crop->sub_x) / crop->zoom); gtk_spin_button_set_range(crop->spin_height, 1, (crop->height - crop->sub_y) / crop->zoom); vnr_crop_update_spin_button_values (crop); } return FALSE; } static gboolean drawable_motion_cb (GtkWidget *widget, GdkEventMotion *event, VnrCrop *crop) { if(!crop->drawing_rectangle) return FALSE; gdouble x, y; x = event->x; y = event->y; x = CLAMP(x, 0, crop->width); y = CLAMP(y, 0, crop->height); vnr_crop_clear_rectangle (crop); if(x > crop->start_x) { crop->sub_x = crop->start_x; crop->sub_width = x - crop->start_x; } else if(x == crop->start_x) { crop->sub_x = x; crop->sub_width = 1; } else { crop->sub_x = x; crop->sub_width = crop->start_x - x; } if(y > crop->start_y) { crop->sub_y = crop->start_y; crop->sub_height = y - crop->start_y; } else if(y == crop->start_y) { crop->sub_y = y; crop->sub_height = 1; } else { crop->sub_y = y; crop->sub_height = crop->start_y - y; } crop->drawing_rectangle = FALSE; crop->do_redraw= FALSE; vnr_crop_update_spin_button_values (crop); crop->drawing_rectangle = TRUE; crop->do_redraw= TRUE; vnr_crop_draw_rectangle (crop); return FALSE; } /*************************************************************/ /***** Stuff that deals with the type ************************/ /*************************************************************/ static void vnr_crop_dispose (GObject *gobject) { VnrCrop *self = VNR_CROP (gobject); if (self->preview_pixbuf != NULL) g_object_unref (self->preview_pixbuf); if (self->gc != NULL) g_object_unref (self->gc); G_OBJECT_CLASS (vnr_crop_parent_class)->dispose (gobject); } static void vnr_crop_class_init (VnrCropClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = vnr_crop_dispose; } GObject * vnr_crop_new (VnrWindow *vnr_win) { VnrCrop *crop; crop = g_object_new (VNR_TYPE_CROP, NULL); crop->vnr_win = vnr_win; return (GObject *) crop; } static void vnr_crop_init (VnrCrop *crop) { crop->drawing_rectangle = FALSE; crop->do_redraw = TRUE; crop->sub_x = -1; crop->sub_y = -1; crop->sub_height = -1; crop->sub_width = -1; crop->height = -1; crop->width = -1; crop->gc = NULL; crop->image = NULL; crop->spin_x = NULL; crop->spin_y = NULL; crop->spin_width = NULL; crop->spin_height = NULL; crop->preview_pixbuf = NULL; } /*************************************************************/ /***** Actions ***********************************************/ /*************************************************************/ gboolean vnr_crop_run (VnrCrop *crop) { GtkWidget *dialog; gint crop_dialog_response; dialog = vnr_crop_build_dialog(crop); if(dialog == NULL) return FALSE; crop_dialog_response = gtk_dialog_run (GTK_DIALOG (dialog)); crop->area.x = gtk_spin_button_get_value_as_int (crop->spin_x); crop->area.y = gtk_spin_button_get_value_as_int (crop->spin_y); crop->area.width = gtk_spin_button_get_value_as_int (crop->spin_width); crop->area.height = gtk_spin_button_get_value_as_int (crop->spin_height); gtk_widget_destroy (dialog); if(crop->area.x == 0 && crop->area.y == 0 && crop->area.width == crop->vnr_win->current_image_width && crop->area.height == crop->vnr_win->current_image_height) { return FALSE; } else { return (crop_dialog_response == GTK_RESPONSE_ACCEPT); } } Viewnior-viewnior-1.8/src/vnr-crop.h000066400000000000000000000042621414645621200175430ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __VNR_CROP_H_ #define __VNR_CROP_H_ #include #include "vnr-window.h" G_BEGIN_DECLS typedef struct _VnrCrop VnrCrop; typedef struct _VnrCropClass VnrCropClass; #define VNR_TYPE_CROP (vnr_crop_get_type ()) #define VNR_CROP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VNR_TYPE_CROP, VnrCrop)) #define VNR_CROP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VNR_TYPE_CROP, VnrCropClass)) #define VNR_IS_CROP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VNR_TYPE_CROP)) #define VNR_IS_CROP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VNR_TYPE_CROP)) #define VNR_CROP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VNR_TYPE_CROP, VnrCropClass)) struct _VnrCrop { GObject parent; VnrWindow *vnr_win; GdkPixbuf *preview_pixbuf; gdouble zoom; gdouble width; gdouble height; GdkGC *gc; GtkWidget *image; GtkSpinButton *spin_x; GtkSpinButton *spin_y; GtkSpinButton *spin_width; GtkSpinButton *spin_height; gdouble sub_x; gdouble sub_y; gdouble sub_width; gdouble sub_height; gboolean drawing_rectangle; gboolean do_redraw; gdouble start_x; gdouble start_y; GdkRectangle area; }; struct _VnrCropClass { GObjectClass parent_class; }; GType vnr_crop_get_type (void) G_GNUC_CONST; GObject *vnr_crop_new (VnrWindow *vnr_win); gboolean vnr_crop_run (VnrCrop *crop); G_END_DECLS #endif /* __VNR_CROP_H_ */ Viewnior-viewnior-1.8/src/vnr-file.c000066400000000000000000000210711414645621200175070ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include #include #define _(String) gettext (String) #include #include #include #include "vnr-file.h" #include "vnr-tools.h" G_DEFINE_TYPE (VnrFile, vnr_file, G_TYPE_OBJECT); GList * supported_mime_types; static gint compare_files(VnrFile *file, char *uri) { if(g_strcmp0(uri, file->path) == 0) return 0; else return 1; } /* Modified version of eog's eog_image_get_supported_mime_types */ static GList * vnr_file_get_supported_mime_types (void) { GSList *format_list, *it; if (!supported_mime_types) { format_list = gdk_pixbuf_get_formats (); for (it = format_list; it != NULL; it = it->next) { gchar **mime_types = gdk_pixbuf_format_get_mime_types((GdkPixbufFormat *) it->data); int i; for (i = 0; mime_types[i] != NULL; i++) { supported_mime_types = g_list_prepend (supported_mime_types, g_strdup (mime_types[i])); } g_strfreev (mime_types); } supported_mime_types = g_list_prepend(supported_mime_types, "image/vnd.microsoft.icon"); supported_mime_types = g_list_sort (supported_mime_types, (GCompareFunc) compare_quarks); g_slist_free (format_list); } return supported_mime_types; } static gboolean vnr_file_is_supported_mime_type (const char *mime_type) { GList *result; GQuark quark; if (mime_type == NULL) { return FALSE; } supported_mime_types = vnr_file_get_supported_mime_types (); quark = g_quark_from_string (mime_type); result = g_list_find_custom (supported_mime_types, GINT_TO_POINTER (quark), (GCompareFunc) compare_quarks); return (result != NULL); } static void vnr_file_class_init (VnrFileClass * klass) { } static void vnr_file_init (VnrFile * file) { file->display_name = NULL; } VnrFile * vnr_file_new () { return VNR_FILE (g_object_new (VNR_TYPE_FILE, NULL)); } static void vnr_file_set_display_name(VnrFile *vnr_file, char *display_name) { vnr_file->display_name = g_strdup(display_name); vnr_file->display_name_collate = g_utf8_collate_key_for_filename(display_name, -1); } static gint vnr_file_list_compare(gconstpointer a, gconstpointer b, gpointer user_data){ return g_strcmp0(VNR_FILE(a)->display_name_collate, VNR_FILE(b)->display_name_collate); } static GList * vnr_file_dir_content_to_list(gchar *path, gboolean sort, gboolean include_hidden) { GList *file_list = NULL; GFile *file; GFileEnumerator *f_enum ; GFileInfo *file_info; file = g_file_new_for_path(path); f_enum = g_file_enumerate_children(file, G_FILE_ATTRIBUTE_STANDARD_NAME"," G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME"," G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE"," G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN"," G_FILE_ATTRIBUTE_TIME_MODIFIED, G_FILE_QUERY_INFO_NONE, NULL, NULL); file_info = g_file_enumerator_next_file(f_enum,NULL,NULL); while(file_info != NULL){ VnrFile *vnr_file = vnr_file_new(); const char *mimetype =g_file_info_get_content_type(file_info); if(vnr_file_is_supported_mime_type(mimetype) && (include_hidden || !g_file_info_get_is_hidden (file_info)) ){ vnr_file_set_display_name(vnr_file, (char*)g_file_info_get_display_name (file_info)); vnr_file->mtime = g_file_info_get_attribute_uint64 (file_info, G_FILE_ATTRIBUTE_TIME_MODIFIED); vnr_file->path =g_strjoin(G_DIR_SEPARATOR_S, path, vnr_file->display_name, NULL); file_list = g_list_prepend(file_list, vnr_file); } g_object_unref(file_info); file_info = g_file_enumerator_next_file(f_enum,NULL,NULL); } g_object_unref (file); g_file_enumerator_close (f_enum, NULL, NULL); g_object_unref (f_enum); if(sort) file_list = g_list_sort_with_data(file_list, vnr_file_list_compare, NULL); return file_list; } void vnr_file_load_single_uri(char *p_path, GList **file_list, gboolean include_hidden, GError **error) { GFile *file; GFileInfo *fileinfo; GFileType filetype; file = g_file_new_for_path(p_path); fileinfo = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_TYPE"," G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, 0, NULL, error); if (fileinfo == NULL) return; filetype = g_file_info_get_file_type(fileinfo); if (filetype == G_FILE_TYPE_DIRECTORY) { *file_list = vnr_file_dir_content_to_list(p_path, TRUE, include_hidden); } else { GFile *parent; GList *current_position; parent = g_file_get_parent(file); *file_list = vnr_file_dir_content_to_list(g_file_get_path(parent), TRUE, include_hidden); g_object_unref(parent); current_position = g_list_find_custom(*file_list, p_path, (GCompareFunc)compare_files); if(current_position != NULL) *file_list = current_position; else if(*file_list == NULL) return; else { *error = g_error_new(1, 0, _("Couldn't recognise the image file\n" "format for file '%s'"), g_file_info_get_display_name (fileinfo)); } } g_object_unref (file); g_object_unref(fileinfo); } void vnr_file_load_uri_list (GSList *uri_list, GList **file_list, gboolean include_hidden, GError **error) { GFileType filetype; gchar *p_path; while(uri_list != NULL) { p_path = uri_list->data; GFile *file = g_file_new_for_path(p_path); GFileInfo *fileinfo = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_TYPE"," G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME"," G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE"," G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN"," G_FILE_ATTRIBUTE_TIME_MODIFIED, 0, NULL, error); if (fileinfo == NULL) { g_clear_error (error); g_object_unref (file); uri_list = g_slist_next(uri_list); continue; } filetype = g_file_info_get_file_type(fileinfo); if (filetype == G_FILE_TYPE_DIRECTORY) { *file_list = g_list_concat (*file_list, vnr_file_dir_content_to_list(p_path, FALSE, include_hidden)); } else { VnrFile *new_vnrfile; const char *mimetype; new_vnrfile = vnr_file_new(); mimetype = g_file_info_get_content_type(fileinfo); if(vnr_file_is_supported_mime_type(mimetype) && (include_hidden || !g_file_info_get_is_hidden (fileinfo)) ) { vnr_file_set_display_name(new_vnrfile, (char*)g_file_info_get_display_name (fileinfo)); new_vnrfile->mtime = g_file_info_get_attribute_uint64 (fileinfo, G_FILE_ATTRIBUTE_TIME_MODIFIED); new_vnrfile->path = g_strdup(p_path); *file_list = g_list_prepend(*file_list, new_vnrfile); } } g_object_unref (file); g_object_unref (fileinfo); uri_list = g_slist_next(uri_list); } *file_list = g_list_sort_with_data(*file_list, vnr_file_list_compare, NULL); } Viewnior-viewnior-1.8/src/vnr-file.h000066400000000000000000000037441414645621200175230ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __VNR_FILE_H__ #define __VNR_FILE_H__ #include G_BEGIN_DECLS #define VNR_TYPE_FILE (vnr_file_get_type ()) #define VNR_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VNR_TYPE_FILE, VnrFile)) #define VNR_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VNR_TYPE_FILE, VnrFileClass)) #define VNR_IS_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VNR_TYPE_FILE)) #define VNR_IS_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VNR_TYPE_FILE)) #define VNR_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VNR_TYPE_FILE, VnrFileClass)) typedef struct _VnrFile VnrFile; typedef struct _VnrFileClass VnrFileClass; struct _VnrFile { GObject parent; const gchar *display_name; const gchar *display_name_collate; const gchar *path; time_t mtime; }; struct _VnrFileClass { GObjectClass parent; }; GType vnr_file_get_type (void) G_GNUC_CONST; /* Constructors */ VnrFile *vnr_file_new (); /* Actions */ void vnr_file_load_uri_list (GSList *uri_list, GList **file_list, gboolean include_hidden, GError **error); void vnr_file_load_single_uri (char *p_uri, GList **file_list, gboolean include_hidden, GError **error); G_END_DECLS #endif /* __VNR_FILE_H__ */ Viewnior-viewnior-1.8/src/vnr-message-area.c000066400000000000000000000143361414645621200211300ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include #include "vnr-message-area.h" G_DEFINE_TYPE (VnrMessageArea, vnr_message_area, GTK_TYPE_EVENT_BOX); static void vnr_message_area_class_init (VnrMessageAreaClass * klass) {} GtkWidget * vnr_message_area_new () { return (GtkWidget *) g_object_new (VNR_TYPE_MESSAGE_AREA, NULL); } static void cancel_button_cb(GtkWidget *widget, VnrMessageArea * msg_area) { vnr_message_area_hide(msg_area); } static void vnr_message_area_initialize(VnrMessageArea * msg_area) { msg_area->with_button = FALSE; msg_area->hbox = gtk_hbox_new(FALSE, 7); gtk_container_add(GTK_CONTAINER (msg_area), msg_area->hbox); gtk_container_set_border_width(GTK_CONTAINER (msg_area->hbox), 7); msg_area->image = gtk_image_new(); gtk_box_pack_start (GTK_BOX (msg_area->hbox), msg_area->image, FALSE, FALSE, 0); msg_area->message = gtk_label_new (NULL); gtk_label_set_line_wrap(GTK_LABEL (msg_area->message), TRUE); gtk_label_set_selectable(GTK_LABEL(msg_area->message), TRUE); gtk_box_pack_start (GTK_BOX (msg_area->hbox), msg_area->message, FALSE, FALSE, 0); msg_area->button_box = gtk_vbutton_box_new(); gtk_box_pack_end(GTK_BOX (msg_area->hbox), msg_area->button_box, FALSE, FALSE, 0); msg_area->user_button = gtk_button_new(); gtk_container_add(GTK_CONTAINER(msg_area->button_box), msg_area->user_button); msg_area->cancel_button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); g_signal_connect(msg_area->cancel_button, "clicked", G_CALLBACK(cancel_button_cb), msg_area); gtk_container_add(GTK_CONTAINER(msg_area->button_box), msg_area->cancel_button); gtk_widget_hide(msg_area->hbox); gtk_widget_set_state(GTK_WIDGET(msg_area), GTK_STATE_SELECTED); gtk_widget_set_state(msg_area->button_box, GTK_STATE_NORMAL); msg_area->initialized = TRUE; } static void vnr_message_area_init (VnrMessageArea * msg_area) { msg_area->initialized = FALSE; } static void vnr_message_area_show_basic (VnrMessageArea *msg_area, gboolean critical, const char *message, gboolean close_image) { char *warning; if(!msg_area->initialized) { vnr_message_area_initialize(msg_area); } msg_area->is_critical = critical; if(critical) gtk_image_set_from_stock (GTK_IMAGE(msg_area->image), GTK_STOCK_DIALOG_ERROR, GTK_ICON_SIZE_DIALOG); else gtk_image_set_from_stock (GTK_IMAGE(msg_area->image), GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG); msg_area->is_critical = critical; warning = g_markup_printf_escaped ("%s", message); gtk_label_set_markup(GTK_LABEL(msg_area->message), warning); g_free (warning); if(close_image == TRUE) vnr_window_close(msg_area->vnr_win); } void vnr_message_area_show (VnrMessageArea *msg_area, gboolean critical, const char *message, gboolean close_image) { vnr_message_area_show_basic(msg_area, critical, message, close_image); if(msg_area->with_button) { g_signal_handlers_disconnect_by_func (msg_area->user_button, msg_area->c_handler, msg_area); msg_area->with_button = FALSE; } gtk_widget_show_all(GTK_WIDGET (msg_area->hbox)); gtk_widget_hide(GTK_WIDGET (msg_area->button_box)); } void vnr_message_area_show_with_button (VnrMessageArea *msg_area, gboolean critical, const char *message, gboolean close_image, const gchar *button_stock_id, GCallback c_handler) { vnr_message_area_show_basic(msg_area, critical, message, close_image); gtk_button_set_use_stock (GTK_BUTTON(msg_area->user_button), TRUE); gtk_button_set_label (GTK_BUTTON(msg_area->user_button), button_stock_id); if(msg_area->with_button) g_signal_handlers_disconnect_by_func (msg_area->user_button, msg_area->c_handler, msg_area->vnr_win); else msg_area->with_button = TRUE; msg_area->c_handler = c_handler; g_signal_connect(msg_area->user_button, "clicked", c_handler, msg_area->vnr_win); gtk_widget_show_all(GTK_WIDGET (msg_area->hbox)); } void vnr_message_area_hide (VnrMessageArea *msg_area) { gtk_widget_hide(GTK_WIDGET (msg_area->hbox)); if(msg_area->with_button) { g_signal_handlers_disconnect_by_func (msg_area->user_button, msg_area->c_handler, msg_area->vnr_win); msg_area->with_button = FALSE; } } gboolean vnr_message_area_is_visible (VnrMessageArea *msg_area) { if(msg_area->initialized && gtk_widget_get_visible(GTK_WIDGET(msg_area))) return TRUE; else return FALSE; } gboolean vnr_message_area_is_critical (VnrMessageArea *msg_area) { if(msg_area->initialized && gtk_widget_get_visible(GTK_WIDGET(msg_area)) && msg_area->is_critical) return TRUE; else return FALSE; } Viewnior-viewnior-1.8/src/vnr-message-area.h000066400000000000000000000060231414645621200211270ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __VNR_MESSAGE_AREA_H__ #define __VNR_MESSAGE_AREA_H__ #include #include #include #include "vnr-window.h" G_BEGIN_DECLS typedef struct _VnrMessageArea VnrMessageArea; typedef struct _VnrMessageAreaClass VnrMessageAreaClass; #define VNR_TYPE_MESSAGE_AREA (vnr_message_area_get_type ()) #define VNR_MESSAGE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VNR_TYPE_MESSAGE_AREA, VnrMessageArea)) #define VNR_MESSAGE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VNR_TYPE_MESSAGE_AREA, VnrMessageAreaClass)) #define VNR_IS_MESSAGE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VNR_TYPE_MESSAGE_AREA)) #define VNR_IS_MESSAGE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VNR_TYPE_MESSAGE_AREA)) #define VNR_MESSAGE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VNR_TYPE_MESSAGE_AREA, VnrMessageAreaClass)) struct _VnrMessageArea { GtkEventBox parent; VnrWindow *vnr_win; GtkWidget *hbox; GtkWidget *image; GtkWidget *message; GtkWidget *button_box; GtkWidget *user_button; GtkWidget *cancel_button; GCallback c_handler; gboolean with_button; gboolean initialized; gboolean is_critical; }; struct _VnrMessageAreaClass { GtkEventBoxClass parent_class; }; GType vnr_message_area_get_type (void) G_GNUC_CONST; GtkWidget* vnr_message_area_new (void); void vnr_message_area_show (VnrMessageArea *msg_area, gboolean critical, const char *message, gboolean close_image); void vnr_message_area_show_with_button (VnrMessageArea *msg_area, gboolean critical, const char *message, gboolean close_image, const gchar *button_stock_id, GCallback c_handler); void vnr_message_area_hide (VnrMessageArea *msg_area); gboolean vnr_message_area_is_critical (VnrMessageArea *msg_area); gboolean vnr_message_area_is_visible (VnrMessageArea *msg_area); G_END_DECLS #endif /* __VNR_MESSAGE_AREA_H__ */ Viewnior-viewnior-1.8/src/vnr-prefs.c000066400000000000000000000511351414645621200177130ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include #include #define _(String) gettext (String) #include "config.h" #include "vnr-prefs.h" #include "vnr-window.h" #define UI_PATH PACKAGE_DATA_DIR"/viewnior/vnr-preferences-dialog.ui" G_DEFINE_TYPE (VnrPrefs, vnr_prefs, G_TYPE_OBJECT); /** * VNR_PREF_LOAD_KEY: * @PK: Name of the VnrPrefs member. * @PT: Type of the VnrPrefs member, a suffix for g_key_file_get_. * @KN: Name of the key in the key file. * @DEF: Default value for the preference. */ #define VNR_PREF_LOAD_KEY(PK, PT, KN, DEF) prefs-> PK = g_key_file_get_ ## PT (conf, "prefs", KN, &read_error); if(read_error != NULL) { prefs-> PK = DEF; g_clear_error(&read_error); } /*************************************************************/ /***** Private signal handlers *******************************/ /*************************************************************/ static void toggle_show_hidden_cb (GtkToggleButton *togglebutton, gpointer user_data) { VNR_PREFS(user_data)->show_hidden = gtk_toggle_button_get_active(togglebutton); vnr_prefs_save(VNR_PREFS(user_data)); } static void toggle_dark_background_cb (GtkToggleButton *togglebutton, gpointer user_data) { VNR_PREFS(user_data)->dark_background = gtk_toggle_button_get_active(togglebutton); vnr_prefs_save(VNR_PREFS(user_data)); vnr_window_apply_preferences(VNR_WINDOW(VNR_PREFS(user_data)->vnr_win)); } static void toggle_fit_on_fullscreen_cb (GtkToggleButton *togglebutton, gpointer user_data) { VNR_PREFS(user_data)->fit_on_fullscreen = gtk_toggle_button_get_active(togglebutton); vnr_prefs_save(VNR_PREFS(user_data)); } static void toggle_smooth_images_cb (GtkToggleButton *togglebutton, gpointer user_data) { VNR_PREFS(user_data)->smooth_images = gtk_toggle_button_get_active(togglebutton); vnr_prefs_save(VNR_PREFS(user_data)); vnr_window_apply_preferences(VNR_WINDOW(VNR_PREFS(user_data)->vnr_win)); } static void toggle_confirm_delete_cb (GtkToggleButton *togglebutton, gpointer user_data) { VNR_PREFS(user_data)->confirm_delete = gtk_toggle_button_get_active(togglebutton); vnr_prefs_save(VNR_PREFS(user_data)); } static void toggle_reload_on_save_cb (GtkToggleButton *togglebutton, gpointer user_data) { VNR_PREFS(user_data)->reload_on_save = gtk_toggle_button_get_active(togglebutton); vnr_prefs_save(VNR_PREFS(user_data)); } static void change_zoom_mode_cb (GtkComboBox *widget, gpointer user_data) { VNR_PREFS(user_data)->zoom = gtk_combo_box_get_active(widget); vnr_prefs_save(VNR_PREFS(user_data)); } static void change_desktop_env_cb (GtkComboBox *widget, gpointer user_data) { VNR_PREFS(user_data)->desktop = gtk_combo_box_get_active(widget); vnr_prefs_save(VNR_PREFS(user_data)); } static void change_jpeg_quality_cb (GtkRange *range, gpointer user_data) { VNR_PREFS(user_data)->jpeg_quality = (int) gtk_range_get_value(range); vnr_prefs_save(VNR_PREFS(user_data)); } static void change_png_compression_cb (GtkRange *range, gpointer user_data) { VNR_PREFS(user_data)->png_compression = (int) gtk_range_get_value(range); vnr_prefs_save(VNR_PREFS(user_data)); } static void change_action_wheel_cb (GtkComboBox *widget, gpointer user_data) { VNR_PREFS(user_data)->behavior_wheel = gtk_combo_box_get_active(widget); vnr_prefs_save(VNR_PREFS(user_data)); } static void change_action_click_cb (GtkComboBox *widget, gpointer user_data) { VNR_PREFS(user_data)->behavior_click = gtk_combo_box_get_active(widget); vnr_prefs_save(VNR_PREFS(user_data)); } static void change_action_modify_cb (GtkComboBox *widget, gpointer user_data) { VNR_PREFS(user_data)->behavior_modify = gtk_combo_box_get_active(widget); vnr_prefs_save(VNR_PREFS(user_data)); } static void change_spin_value_cb (GtkSpinButton *spinbutton, gpointer user_data) { int new_value; new_value = gtk_spin_button_get_value_as_int (spinbutton); VNR_PREFS(user_data)->slideshow_timeout = new_value; vnr_prefs_save(VNR_PREFS(user_data)); vnr_window_apply_preferences(VNR_WINDOW(VNR_PREFS(user_data)->vnr_win)); } static gboolean key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { if(event->keyval == GDK_KEY_Escape) { gtk_widget_hide(widget); return TRUE; } else return FALSE; } /*************************************************************/ /***** Private actions ***************************************/ /*************************************************************/ static void vnr_prefs_set_default(VnrPrefs *prefs) { prefs->zoom = VNR_PREFS_ZOOM_SMART; prefs->show_hidden = FALSE; prefs->dark_background = FALSE; prefs->fit_on_fullscreen = TRUE; prefs->smooth_images = TRUE; prefs->confirm_delete = TRUE; prefs->slideshow_timeout = 5; prefs->behavior_wheel = VNR_PREFS_WHEEL_ZOOM; prefs->behavior_click = VNR_PREFS_CLICK_ZOOM; prefs->behavior_modify = VNR_PREFS_MODIFY_ASK; prefs->jpeg_quality = 90; prefs->png_compression = 9; prefs->reload_on_save = FALSE; prefs->show_menu_bar = FALSE; prefs->show_toolbar = TRUE; prefs->show_scrollbar = TRUE; prefs->show_statusbar = FALSE; prefs->start_maximized = FALSE; prefs->start_slideshow = FALSE; prefs->start_fullscreen = FALSE; prefs->auto_resize = FALSE; prefs->desktop = VNR_PREFS_DESKTOP_AUTO; } static GtkWidget * build_dialog (VnrPrefs *prefs) { GtkBuilder *builder; GtkWidget *window; GError *error = NULL; GObject *close_button; GtkToggleButton *show_hidden; GtkToggleButton *dark_background; GtkToggleButton *fit_on_fullscreen; GtkBox *zoom_mode_box; GtkComboBoxText *zoom_mode; GtkToggleButton *smooth_images; GtkToggleButton *confirm_delete; GtkToggleButton *reload_on_save; GtkSpinButton *slideshow_timeout; GtkTable *behavior_table; GtkComboBoxText *action_wheel; GtkComboBoxText *action_click; GtkComboBoxText *action_modify; GtkRange *jpeg_scale; GtkRange *png_scale; GtkBox *desktop_box; GtkComboBoxText *desktop_env; builder = gtk_builder_new (); gtk_builder_add_from_file (builder, UI_PATH, &error); if (error != NULL) { g_warning ("%s\n", error->message); g_object_unref(builder); return NULL; } window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); /* Close button */ close_button = gtk_builder_get_object (builder, "close_button"); g_signal_connect_swapped(close_button, "clicked", G_CALLBACK(gtk_widget_hide_on_delete), window); /* Show hidden files checkbox */ show_hidden = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "show_hidden")); gtk_toggle_button_set_active( show_hidden, prefs->show_hidden ); g_signal_connect(G_OBJECT(show_hidden), "toggled", G_CALLBACK(toggle_show_hidden_cb), prefs); /* Show dark background checkbox */ dark_background = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "dark_background")); gtk_toggle_button_set_active( dark_background, prefs->dark_background ); g_signal_connect(G_OBJECT(dark_background), "toggled", G_CALLBACK(toggle_dark_background_cb), prefs); /* Fit on fullscreen checkbox */ fit_on_fullscreen = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "fit_on_fullscreen")); gtk_toggle_button_set_active( fit_on_fullscreen, prefs->fit_on_fullscreen ); g_signal_connect(G_OBJECT(fit_on_fullscreen), "toggled", G_CALLBACK(toggle_fit_on_fullscreen_cb), prefs); /* Smooth images checkbox */ smooth_images = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "smooth_images")); gtk_toggle_button_set_active( smooth_images, prefs->smooth_images ); g_signal_connect(G_OBJECT(smooth_images), "toggled", G_CALLBACK(toggle_smooth_images_cb), prefs); /* Confirm delete checkbox */ confirm_delete = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "confirm_delete")); gtk_toggle_button_set_active( confirm_delete, prefs->confirm_delete ); g_signal_connect(G_OBJECT(confirm_delete), "toggled", G_CALLBACK(toggle_confirm_delete_cb), prefs); /* Reload image after save checkbox */ reload_on_save = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "reload")); gtk_toggle_button_set_active( reload_on_save, prefs->reload_on_save ); g_signal_connect(G_OBJECT(reload_on_save), "toggled", G_CALLBACK(toggle_reload_on_save_cb), prefs); /* Slideshow timeout spin button */ slideshow_timeout = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, "slideshow_timeout")); gtk_spin_button_set_value( slideshow_timeout, (gdouble)prefs->slideshow_timeout); prefs->slideshow_timeout_widget = slideshow_timeout; g_signal_connect(G_OBJECT(slideshow_timeout), "value-changed", G_CALLBACK(change_spin_value_cb), prefs); /* JPEG quality scale */ jpeg_scale = GTK_RANGE (gtk_builder_get_object (builder, "jpeg_scale")); gtk_range_set_value(jpeg_scale, (gdouble)prefs->jpeg_quality); g_signal_connect(G_OBJECT(jpeg_scale), "value-changed", G_CALLBACK(change_jpeg_quality_cb), prefs); /* PNG compression scale */ png_scale = GTK_RANGE (gtk_builder_get_object (builder, "png_scale")); gtk_range_set_value(png_scale, (gdouble)prefs->png_compression); g_signal_connect(G_OBJECT(png_scale), "value-changed", G_CALLBACK(change_png_compression_cb), prefs); /* Zoom mode combo box */ zoom_mode_box = GTK_BOX (gtk_builder_get_object (builder, "zoom_mode_box")); zoom_mode = (GtkComboBoxText*) gtk_combo_box_text_new(); gtk_combo_box_text_append_text(zoom_mode, _("Smart Mode")); gtk_combo_box_text_append_text(zoom_mode, _("1:1 Mode")); gtk_combo_box_text_append_text(zoom_mode, _("Fit To Window Mode")); gtk_combo_box_text_append_text(zoom_mode, _("Last Used Mode")); gtk_combo_box_set_active(GTK_COMBO_BOX(zoom_mode), prefs->zoom); gtk_box_pack_end (zoom_mode_box, GTK_WIDGET(zoom_mode), FALSE, FALSE, 0); gtk_widget_show(GTK_WIDGET(zoom_mode)); g_signal_connect(G_OBJECT(zoom_mode), "changed", G_CALLBACK(change_zoom_mode_cb), prefs); /* Desktop combo box */ desktop_box = GTK_BOX (gtk_builder_get_object (builder, "desktop_box")); desktop_env = (GtkComboBoxText*) gtk_combo_box_text_new(); gtk_combo_box_text_append_text(desktop_env, "GNOME 2"); gtk_combo_box_text_append_text(desktop_env, "GNOME 3"); gtk_combo_box_text_append_text(desktop_env, "XFCE"); gtk_combo_box_text_append_text(desktop_env, "LXDE"); gtk_combo_box_text_append_text(desktop_env, "PUPPY"); gtk_combo_box_text_append_text(desktop_env, "FluxBox"); gtk_combo_box_text_append_text(desktop_env, "Nitrogen"); gtk_combo_box_text_append_text(desktop_env, "MATE"); gtk_combo_box_text_append_text(desktop_env, "Cinnamon"); gtk_combo_box_text_append_text(desktop_env, _("Autodetect")); gtk_combo_box_set_active(GTK_COMBO_BOX(desktop_env), prefs->desktop); gtk_box_pack_end (desktop_box, GTK_WIDGET(desktop_env), FALSE, FALSE, 0); gtk_widget_show(GTK_WIDGET(desktop_env)); g_signal_connect(G_OBJECT(desktop_env), "changed", G_CALLBACK(change_desktop_env_cb), prefs); /* Behavior combo boxes */ behavior_table = GTK_TABLE (gtk_builder_get_object (builder, "behavior_table")); action_wheel = (GtkComboBoxText*) gtk_combo_box_text_new(); gtk_combo_box_text_append_text(action_wheel, _("Navigate images")); gtk_combo_box_text_append_text(action_wheel, _("Zoom image")); gtk_combo_box_text_append_text(action_wheel, _("Scroll image up/down")); gtk_combo_box_set_active(GTK_COMBO_BOX(action_wheel), prefs->behavior_wheel); gtk_table_attach (behavior_table, GTK_WIDGET(action_wheel), 1,2,0,1, GTK_FILL,0, 0,0); gtk_widget_show(GTK_WIDGET(action_wheel)); g_signal_connect(G_OBJECT(action_wheel), "changed", G_CALLBACK(change_action_wheel_cb), prefs); action_click = (GtkComboBoxText*) gtk_combo_box_text_new(); gtk_combo_box_text_append_text(action_click, _("Switch zoom modes")); gtk_combo_box_text_append_text(action_click, _("Enter fullscreen mode")); gtk_combo_box_text_append_text(action_click, _("Navigate images")); gtk_combo_box_set_active(GTK_COMBO_BOX(action_click), prefs->behavior_click); gtk_table_attach (behavior_table, GTK_WIDGET(action_click), 1,2,1,2, GTK_FILL,0, 0,0); gtk_widget_show(GTK_WIDGET(action_click)); g_signal_connect(G_OBJECT(action_click), "changed", G_CALLBACK(change_action_click_cb), prefs); action_modify = (GtkComboBoxText*) gtk_combo_box_text_new(); gtk_combo_box_text_append_text(action_modify, _("Ask every time")); gtk_combo_box_text_append_text(action_modify, _("Autosave")); gtk_combo_box_text_append_text(action_modify, _("Ignore changes")); gtk_combo_box_set_active(GTK_COMBO_BOX(action_modify), prefs->behavior_modify); gtk_table_attach (behavior_table, GTK_WIDGET(action_modify), 1,2,2,3, GTK_FILL,0, 0,0); gtk_widget_show(GTK_WIDGET(action_modify)); g_signal_connect(G_OBJECT(action_modify), "changed", G_CALLBACK(change_action_modify_cb), prefs); /* Window signals */ g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(gtk_widget_hide_on_delete), NULL); g_signal_connect(G_OBJECT(window), "key-press-event", G_CALLBACK(key_press_cb), NULL); g_object_unref (G_OBJECT (builder)); return window; } static gboolean vnr_prefs_load (VnrPrefs *prefs, GError **error) { GKeyFile *conf = g_key_file_new(); GError *read_error = NULL; GError *load_file_error = NULL; const gchar *path; path = g_build_filename (g_get_user_config_dir(), PACKAGE, "viewnior.conf", NULL); g_key_file_load_from_file (conf, path, G_KEY_FILE_NONE, &load_file_error); g_free((char*)path); if(load_file_error != NULL) { g_propagate_error (error, load_file_error); g_key_file_free (conf); return FALSE; } VNR_PREF_LOAD_KEY (zoom, integer, "zoom-mode", VNR_PREFS_ZOOM_SMART); VNR_PREF_LOAD_KEY (fit_on_fullscreen, boolean, "fit-on-fullscreen", TRUE); VNR_PREF_LOAD_KEY (show_hidden, boolean, "show-hidden", FALSE); VNR_PREF_LOAD_KEY (dark_background, boolean, "dark-background", FALSE); VNR_PREF_LOAD_KEY (smooth_images, boolean, "smooth-images", TRUE); VNR_PREF_LOAD_KEY (confirm_delete, boolean, "confirm-delete", TRUE); VNR_PREF_LOAD_KEY (reload_on_save, boolean, "reload-on-save", FALSE); VNR_PREF_LOAD_KEY (show_menu_bar, boolean, "show-menu-bar", FALSE); VNR_PREF_LOAD_KEY (show_toolbar, boolean, "show-toolbar", TRUE); VNR_PREF_LOAD_KEY (show_scrollbar, boolean, "show-scrollbar", TRUE); VNR_PREF_LOAD_KEY (show_statusbar, boolean, "show-statusbar", FALSE); VNR_PREF_LOAD_KEY (start_maximized, boolean, "start-maximized", FALSE); VNR_PREF_LOAD_KEY (slideshow_timeout, integer, "slideshow-timeout", 5); VNR_PREF_LOAD_KEY (auto_resize, boolean, "auto-resize", FALSE); VNR_PREF_LOAD_KEY (behavior_wheel, integer, "behavior-wheel", VNR_PREFS_WHEEL_ZOOM); VNR_PREF_LOAD_KEY (behavior_click, integer, "behavior-click", VNR_PREFS_CLICK_ZOOM); VNR_PREF_LOAD_KEY (behavior_modify, integer, "behavior-modify", VNR_PREFS_MODIFY_ASK); VNR_PREF_LOAD_KEY (jpeg_quality, integer, "jpeg-quality", 90); VNR_PREF_LOAD_KEY (png_compression, integer, "png-compression", 9); VNR_PREF_LOAD_KEY (desktop, integer, "desktop", VNR_PREFS_DESKTOP_AUTO); g_key_file_free (conf); return TRUE; } /*************************************************************/ /***** Stuff that deals with the type ************************/ /*************************************************************/ static void vnr_prefs_class_init (VnrPrefsClass * klass) {} GObject * vnr_prefs_new (GtkWidget *vnr_win) { VnrPrefs *prefs; prefs = g_object_new (VNR_TYPE_PREFS, NULL); prefs->vnr_win = vnr_win; return (GObject *) prefs; } static void vnr_prefs_init (VnrPrefs * prefs) { GError *error = NULL; if ( !vnr_prefs_load (prefs, &error) ) { g_warning("Error loading config file: %s. All preferences are set to their default values. Saving ...", error->message); vnr_prefs_set_default(prefs); vnr_prefs_save (prefs); } prefs->dialog = NULL; } /*************************************************************/ /***** Actions ***********************************************/ /*************************************************************/ void vnr_prefs_show_dialog(VnrPrefs *prefs) { if (prefs->dialog == NULL) { prefs->dialog = build_dialog (prefs); if (prefs->dialog == NULL) return; } gtk_window_present(GTK_WINDOW(prefs->dialog)); } gboolean vnr_prefs_save (VnrPrefs *prefs) { GKeyFile *conf; FILE *rcfile; const gchar *dir; const gchar *path; dir = g_build_filename (g_get_user_config_dir(), PACKAGE, NULL); path = g_build_filename (dir, "viewnior.conf", NULL); conf = g_key_file_new(); g_key_file_set_integer (conf, "prefs", "zoom-mode", prefs->zoom); g_key_file_set_boolean (conf, "prefs", "fit-on-fullscreen", prefs->fit_on_fullscreen); g_key_file_set_boolean (conf, "prefs", "show-hidden", prefs->show_hidden); g_key_file_set_boolean (conf, "prefs", "dark-background", prefs->dark_background); g_key_file_set_boolean (conf, "prefs", "smooth-images", prefs->smooth_images); g_key_file_set_boolean (conf, "prefs", "confirm-delete", prefs->confirm_delete); g_key_file_set_boolean (conf, "prefs", "reload-on-save", prefs->reload_on_save); g_key_file_set_boolean (conf, "prefs", "show-menu-bar", prefs->show_menu_bar); g_key_file_set_boolean (conf, "prefs", "show-toolbar", prefs->show_toolbar); g_key_file_set_boolean (conf, "prefs", "show-scrollbar", prefs->show_scrollbar); g_key_file_set_boolean (conf, "prefs", "show-statusbar", prefs->show_statusbar); g_key_file_set_boolean (conf, "prefs", "start-maximized", prefs->start_maximized); g_key_file_set_integer (conf, "prefs", "slideshow-timeout", prefs->slideshow_timeout); g_key_file_set_boolean (conf, "prefs", "auto-resize", prefs->auto_resize); g_key_file_set_integer (conf, "prefs", "behavior-wheel", prefs->behavior_wheel); g_key_file_set_integer (conf, "prefs", "behavior-click", prefs->behavior_click); g_key_file_set_integer (conf, "prefs", "behavior-modify", prefs->behavior_modify); g_key_file_set_integer (conf, "prefs", "jpeg-quality", prefs->jpeg_quality); g_key_file_set_integer (conf, "prefs", "png-compression", prefs->png_compression); g_key_file_set_integer (conf, "prefs", "desktop", prefs->desktop); if(g_mkdir_with_parents (dir, 0700) != 0) g_warning("Error creating config file's parent directory (%s)\n", dir); rcfile = fopen(path , "w"); if(rcfile != NULL) { gchar *data = g_key_file_to_data (conf, NULL, NULL); fputs(data, rcfile); fclose(rcfile); g_free(data); } else g_warning("Saving config file: Unable to open the configuration file for writing!\n"); g_key_file_free (conf); g_free((char*)dir); g_free((char*)path); return TRUE; } void vnr_prefs_set_slideshow_timeout (VnrPrefs *prefs, int value) { if (prefs->dialog != NULL) gtk_spin_button_set_value(prefs->slideshow_timeout_widget, (gdouble)value); } void vnr_prefs_set_show_toolbar (VnrPrefs *prefs, gboolean show_toolbar) { if(prefs->show_toolbar != show_toolbar) { prefs->show_toolbar = show_toolbar; vnr_prefs_save(prefs); } } void vnr_prefs_set_show_scrollbar (VnrPrefs *prefs, gboolean show_scrollbar) { if(prefs->show_scrollbar != show_scrollbar) { prefs->show_scrollbar = show_scrollbar; vnr_prefs_save(prefs); } } void vnr_prefs_set_show_statusbar (VnrPrefs *prefs, gboolean show_statusbar) { if(prefs->show_statusbar != show_statusbar) { prefs->show_statusbar = show_statusbar; vnr_prefs_save(prefs); } } void vnr_prefs_set_show_menu_bar (VnrPrefs *prefs, gboolean show_menu_bar) { if(prefs->show_menu_bar != show_menu_bar) { prefs->show_menu_bar = show_menu_bar; vnr_prefs_save(prefs); } } Viewnior-viewnior-1.8/src/vnr-prefs.h000066400000000000000000000074111414645621200177160ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __VNR_PREFS_H__ #define __VNR_PREFS_H__ #include "config.h" #include #include #include #include G_BEGIN_DECLS typedef struct _VnrPrefs VnrPrefs; typedef struct _VnrPrefsClass VnrPrefsClass; #define VNR_TYPE_PREFS (vnr_prefs_get_type ()) #define VNR_PREFS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VNR_TYPE_PREFS, VnrPrefs)) #define VNR_PREFS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VNR_TYPE_PREFS, VnrPrefsClass)) #define VNR_IS_PREFS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VNR_TYPE_PREFS)) #define VNR_IS_PREFS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VNR_TYPE_PREFS)) #define VNR_PREFS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VNR_TYPE_PREFS, VnrPrefsClass)) typedef enum{ VNR_PREFS_ZOOM_SMART, VNR_PREFS_ZOOM_NORMAL, VNR_PREFS_ZOOM_FIT, VNR_PREFS_ZOOM_LAST_USED, } VnrPrefsZoom; typedef enum{ VNR_PREFS_DESKTOP_GNOME2, VNR_PREFS_DESKTOP_GNOME3, VNR_PREFS_DESKTOP_XFCE, VNR_PREFS_DESKTOP_LXDE, VNR_PREFS_DESKTOP_PUPPY, VNR_PREFS_DESKTOP_FLUXBOX, VNR_PREFS_DESKTOP_NITROGEN, VNR_PREFS_DESKTOP_MATE, VNR_PREFS_DESKTOP_CINNAMON, VNR_PREFS_DESKTOP_AUTO, } VnrPrefsDesktop; typedef enum{ VNR_PREFS_WHEEL_NAVIGATE , VNR_PREFS_WHEEL_ZOOM , VNR_PREFS_WHEEL_SCROLL, } VnrPrefsWheel; typedef enum{ VNR_PREFS_CLICK_ZOOM , VNR_PREFS_CLICK_FULLSCREEN , VNR_PREFS_CLICK_NEXT , } VnrPrefsClick; typedef enum{ VNR_PREFS_MODIFY_ASK , VNR_PREFS_MODIFY_SAVE , VNR_PREFS_MODIFY_IGNORE , } VnrPrefsModify; struct _VnrPrefs { GObject parent; VnrPrefsZoom zoom; VnrPrefsDesktop desktop; VnrPrefsWheel behavior_wheel; VnrPrefsClick behavior_click; VnrPrefsModify behavior_modify; gboolean fit_on_fullscreen; gboolean show_hidden; gboolean smooth_images; gboolean confirm_delete; gboolean reload_on_save; gboolean show_menu_bar; gboolean show_toolbar; gboolean show_scrollbar; gboolean show_statusbar; gboolean start_maximized; gboolean start_slideshow; gboolean start_fullscreen; gboolean auto_resize; gboolean dark_background; int slideshow_timeout; int jpeg_quality; int png_compression; GtkWidget *dialog; GtkWidget *vnr_win; GtkSpinButton *slideshow_timeout_widget; }; struct _VnrPrefsClass { GObjectClass parent_class; }; GType vnr_prefs_get_type (void) G_GNUC_CONST; GObject* vnr_prefs_new (GtkWidget *window); void vnr_prefs_show_dialog (VnrPrefs *prefs); void vnr_prefs_set_slideshow_timeout (VnrPrefs *prefs, int value); void vnr_prefs_set_show_menu_bar (VnrPrefs *prefs, gboolean show_menu_bar); void vnr_prefs_set_show_toolbar (VnrPrefs *prefs, gboolean show_toolbar); void vnr_prefs_set_show_scrollbar (VnrPrefs *prefs, gboolean show_scollbar); void vnr_prefs_set_show_statusbar (VnrPrefs *prefs, gboolean show_statusbar); gboolean vnr_prefs_save (VnrPrefs *prefs); G_END_DECLS #endif /* __VNR_PREFS_H__ */ Viewnior-viewnior-1.8/src/vnr-properties-dialog.c000066400000000000000000000353631414645621200222320ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include #include #include #define _(String) gettext (String) #include #include #include "vnr-properties-dialog.h" #include "vnr-file.h" #include "vnr-tools.h" #include "uni-exiv2.hpp" G_DEFINE_TYPE (VnrPropertiesDialog, vnr_properties_dialog, GTK_TYPE_DIALOG); static void vnr_properties_dialog_update_metadata(VnrPropertiesDialog *dialog); static gboolean key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { if(event->keyval == GDK_KEY_Escape) { gtk_widget_hide(widget); return TRUE; } else return FALSE; } static void get_file_info(gchar *filename, goffset *size, const gchar **type) { GFile *file; GFileInfo *fileinfo; file = g_file_new_for_path(filename); fileinfo = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE"," G_FILE_ATTRIBUTE_STANDARD_SIZE, 0, NULL, NULL); if (fileinfo == NULL) { return; } *size = g_file_info_get_size(fileinfo); *type = g_strdup(g_file_info_get_content_type(fileinfo)); g_object_unref(file); g_object_unref(fileinfo); } static void set_new_pixbuf(VnrPropertiesDialog *dialog, GdkPixbuf* original) { if(dialog->thumbnail != NULL) { g_object_unref(dialog->thumbnail); dialog->thumbnail = NULL; } if(original == NULL) { gtk_image_set_from_stock(GTK_IMAGE(dialog->image), GTK_STOCK_MISSING_IMAGE, GTK_ICON_SIZE_DIALOG); return; } int width, height; width = gdk_pixbuf_get_width (original); height = gdk_pixbuf_get_height (original); vnr_tools_fit_to_size(&height, &width, 100,100); dialog->thumbnail = gdk_pixbuf_scale_simple (original, width, height, GDK_INTERP_NEAREST); } static void vnr_properties_dialog_class_init (VnrPropertiesDialogClass * klass) {} GtkWidget * vnr_properties_dialog_new (VnrWindow *vnr_win, GtkAction *next_action, GtkAction *prev_action) { VnrPropertiesDialog *dialog; dialog = g_object_new (VNR_TYPE_PROPERTIES_DIALOG, NULL); dialog->thumbnail = NULL; dialog->vnr_win = vnr_win; gtk_activatable_set_related_action (GTK_ACTIVATABLE(dialog->next_button), next_action); gtk_activatable_set_related_action (GTK_ACTIVATABLE(dialog->prev_button), prev_action); gtk_button_set_label (GTK_BUTTON(dialog->next_button), _("_Next")); gtk_button_set_label (GTK_BUTTON(dialog->prev_button), _("_Previous")); gtk_widget_grab_focus (dialog->close_button); return (GtkWidget *) dialog; } static void vnr_properties_dialog_init (VnrPropertiesDialog * dialog) { GtkWidget *content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); GtkWidget *action_area = gtk_dialog_get_action_area(GTK_DIALOG(dialog)); GtkWidget *temp_box; GtkWidget *temp_label; gtk_window_set_title(GTK_WINDOW(dialog), _("Image Properties")); /* VBox containing the Location labels */ temp_box = gtk_vbox_new(FALSE,0); gtk_container_set_border_width (GTK_CONTAINER(temp_box), 10); gtk_box_pack_start (GTK_BOX(content_area), temp_box, FALSE,FALSE,0); temp_label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(temp_label), _("Location:")); gtk_misc_set_alignment (GTK_MISC(temp_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), temp_label, FALSE,FALSE,0); dialog->location_label = gtk_label_new(NULL); gtk_misc_set_alignment (GTK_MISC(dialog->location_label), 0, 0); gtk_label_set_selectable (GTK_LABEL(dialog->location_label), TRUE); gtk_label_set_ellipsize (GTK_LABEL(dialog->location_label), PANGO_ELLIPSIZE_END); gtk_box_pack_start (GTK_BOX (temp_box), dialog->location_label, FALSE,FALSE,0); /* VBox containing the image and meta data */ dialog->layout = gtk_vbox_new(FALSE,10); gtk_container_set_border_width (GTK_CONTAINER(dialog->layout), 10); gtk_box_pack_start ( GTK_BOX (content_area) , dialog->layout, FALSE,FALSE,0); /* HBox containing the image and the two columns with labels */ dialog->image_layout = gtk_hbox_new(FALSE,10); gtk_container_set_border_width (GTK_CONTAINER(dialog->image_layout), 10); gtk_box_pack_start ( GTK_BOX (dialog->layout) , dialog->image_layout, FALSE,FALSE,0); /* The frame around the image */ temp_box = gtk_frame_new(NULL); gtk_widget_set_size_request (temp_box, 105, 105); gtk_box_pack_start (GTK_BOX (dialog->image_layout), temp_box, FALSE,FALSE,0); dialog->image = gtk_image_new_from_stock(GTK_STOCK_MISSING_IMAGE, GTK_ICON_SIZE_DIALOG); gtk_container_add (GTK_CONTAINER (temp_box), dialog->image); /* Buttons */ dialog->prev_button = gtk_button_new(); gtk_button_set_image (GTK_BUTTON(dialog->prev_button), gtk_image_new_from_stock(GTK_STOCK_GO_BACK, GTK_ICON_SIZE_BUTTON)); gtk_container_add (GTK_CONTAINER (action_area), dialog->prev_button); dialog->next_button = gtk_button_new(); gtk_button_set_image (GTK_BUTTON(dialog->next_button), gtk_image_new_from_stock(GTK_STOCK_GO_FORWARD, GTK_ICON_SIZE_BUTTON)); gtk_container_add (GTK_CONTAINER (action_area), dialog->next_button); dialog->close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); gtk_container_add (GTK_CONTAINER (action_area), dialog->close_button); /* Image Data Labels */ temp_box = gtk_vbox_new(FALSE,0); gtk_box_pack_start (GTK_BOX (dialog->image_layout), temp_box, FALSE,FALSE,0); temp_label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(temp_label), _("Name:")); gtk_misc_set_alignment (GTK_MISC(temp_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), temp_label, FALSE,FALSE,0); temp_label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(temp_label), _("Type:")); gtk_misc_set_alignment (GTK_MISC(temp_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), temp_label, FALSE,FALSE,0); temp_label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(temp_label), _("Size:")); gtk_misc_set_alignment (GTK_MISC(temp_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), temp_label, FALSE,FALSE,0); temp_label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(temp_label), _("Width:")); gtk_misc_set_alignment (GTK_MISC(temp_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), temp_label, FALSE,FALSE,0); temp_label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(temp_label), _("Height:")); gtk_misc_set_alignment (GTK_MISC(temp_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), temp_label, FALSE,FALSE,0); temp_label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(temp_label), _("Modified:")); gtk_misc_set_alignment (GTK_MISC(temp_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), temp_label, FALSE,FALSE,0); temp_box = gtk_vbox_new(FALSE,0); gtk_box_pack_start (GTK_BOX (dialog->image_layout), temp_box, FALSE,FALSE,0); dialog->name_label = gtk_label_new(NULL); gtk_label_set_selectable (GTK_LABEL(dialog->name_label), TRUE); gtk_misc_set_alignment (GTK_MISC(dialog->name_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), dialog->name_label, FALSE,FALSE,0); dialog->type_label = gtk_label_new(NULL); gtk_label_set_selectable (GTK_LABEL(dialog->type_label), TRUE); gtk_misc_set_alignment (GTK_MISC(dialog->type_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), dialog->type_label, FALSE,FALSE,0); dialog->size_label = gtk_label_new(NULL); gtk_label_set_selectable (GTK_LABEL(dialog->size_label), TRUE); gtk_misc_set_alignment (GTK_MISC(dialog->size_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), dialog->size_label, FALSE,FALSE,0); dialog->width_label = gtk_label_new(NULL); gtk_label_set_selectable (GTK_LABEL(dialog->width_label), TRUE); gtk_misc_set_alignment (GTK_MISC(dialog->width_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), dialog->width_label, FALSE,FALSE,0); dialog->height_label = gtk_label_new(NULL); gtk_label_set_selectable (GTK_LABEL(dialog->height_label), TRUE); gtk_misc_set_alignment (GTK_MISC(dialog->height_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), dialog->height_label, FALSE,FALSE,0); dialog->modified_label = gtk_label_new(NULL); gtk_label_set_selectable (GTK_LABEL(dialog->modified_label), TRUE); gtk_misc_set_alignment (GTK_MISC(dialog->modified_label), 0, 0); gtk_box_pack_start (GTK_BOX (temp_box), dialog->modified_label, FALSE,FALSE,0); /* Metadata Labels */ temp_box = gtk_hbox_new(FALSE,10); gtk_box_pack_start (GTK_BOX (dialog->layout), temp_box, FALSE,FALSE,0); dialog->meta_names_box = gtk_vbox_new(FALSE,0); gtk_box_pack_start (GTK_BOX (temp_box), dialog->meta_names_box, FALSE,FALSE,0); dialog->meta_values_box = gtk_vbox_new(FALSE,0); gtk_box_pack_start (GTK_BOX (temp_box), dialog->meta_values_box, FALSE,FALSE,0); /* Events and rest */ g_signal_connect(G_OBJECT(dialog), "delete-event", G_CALLBACK(gtk_widget_hide_on_delete), NULL); g_signal_connect_swapped(G_OBJECT(dialog->close_button), "clicked", G_CALLBACK(gtk_widget_hide_on_delete), dialog); g_signal_connect(G_OBJECT(dialog), "key-press-event", G_CALLBACK(key_press_cb), NULL); gtk_widget_show_all(content_area); gtk_widget_show_all(action_area); } void vnr_properties_dialog_update(VnrPropertiesDialog *dialog) { const gchar *filetype = NULL; goffset filesize = 0; gchar *filetype_desc = NULL; gchar *filesize_str = NULL; get_file_info ((gchar*)VNR_FILE(dialog->vnr_win->file_list->data)->path, &filesize, &filetype); if(filetype == NULL && filesize == 0) { vnr_properties_dialog_clear(dialog); return; } vnr_properties_dialog_update_image(dialog); vnr_properties_dialog_update_metadata(dialog); filesize_str = g_format_size (filesize); filetype_desc = g_content_type_get_description (filetype); gtk_label_set_text(GTK_LABEL(dialog->name_label), (gchar*)VNR_FILE(dialog->vnr_win->file_list->data)->display_name); gtk_label_set_text(GTK_LABEL(dialog->location_label), (gchar*)VNR_FILE(dialog->vnr_win->file_list->data)->path); gtk_label_set_text(GTK_LABEL(dialog->type_label), filetype_desc); gtk_label_set_text(GTK_LABEL(dialog->size_label), filesize_str); g_free(filesize_str); g_free((gchar*)filetype); g_free(filetype_desc); } static void vnr_properties_dialog_clear_metadata(VnrPropertiesDialog *dialog) { GList *children; GList *iter; children = gtk_container_get_children(GTK_CONTAINER(dialog->meta_values_box)); for(iter = children; iter != NULL; iter = g_list_next(iter)) { gtk_widget_destroy(GTK_WIDGET(iter->data)); } g_list_free(children); children = gtk_container_get_children(GTK_CONTAINER(dialog->meta_names_box)); for(iter = children; iter != NULL; iter = g_list_next(iter)) { gtk_widget_destroy(GTK_WIDGET(iter->data)); } g_list_free(children); } static void vnr_cb_add_metadata(const char *label, const char *value, void *user_data) { VnrPropertiesDialog *dialog = VNR_PROPERTIES_DIALOG(user_data); GtkWidget *temp_label; gchar *formatted_label; // value temp_label = gtk_label_new(NULL); gtk_label_set_text(GTK_LABEL(temp_label), value); gtk_label_set_selectable (GTK_LABEL(temp_label), TRUE); gtk_misc_set_alignment (GTK_MISC(temp_label), 0, 0); gtk_box_pack_start (GTK_BOX(dialog->meta_values_box), temp_label, FALSE,FALSE,0); gtk_widget_show(temp_label); // label formatted_label = g_strdup_printf("%s:", label); temp_label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(temp_label), formatted_label); gtk_misc_set_alignment (GTK_MISC(temp_label), 0, 0); gtk_box_pack_start (GTK_BOX(dialog->meta_names_box), temp_label, FALSE,FALSE,0); g_free(formatted_label); gtk_widget_show(temp_label); } static void vnr_properties_dialog_update_metadata(VnrPropertiesDialog *dialog) { vnr_properties_dialog_clear_metadata(dialog); uni_read_exiv2_map( VNR_FILE(dialog->vnr_win->file_list->data)->path, vnr_cb_add_metadata, (void*)dialog); } void vnr_properties_dialog_update_image(VnrPropertiesDialog *dialog) { gchar *width_str, *height_str; int date_modified_buf_size = 80; gchar date_modified[date_modified_buf_size]; strftime(date_modified, date_modified_buf_size * sizeof(gchar), "%Ec", localtime(&VNR_FILE(dialog->vnr_win->file_list->data)->mtime)); gtk_label_set_text(GTK_LABEL(dialog->modified_label), date_modified); set_new_pixbuf(dialog, uni_image_view_get_pixbuf(UNI_IMAGE_VIEW(dialog->vnr_win->view))); gtk_image_set_from_pixbuf (GTK_IMAGE(dialog->image), dialog->thumbnail); width_str = g_strdup_printf("%i px", dialog->vnr_win->current_image_width); height_str = g_strdup_printf("%i px", dialog->vnr_win->current_image_height); gtk_label_set_text(GTK_LABEL(dialog->width_label), width_str); gtk_label_set_text(GTK_LABEL(dialog->height_label), height_str); g_free(width_str); g_free(height_str); } void vnr_properties_dialog_clear(VnrPropertiesDialog *dialog) { set_new_pixbuf(dialog, NULL); vnr_properties_dialog_clear_metadata(dialog); gtk_label_set_text(GTK_LABEL(dialog->location_label), _("None")); gtk_label_set_text(GTK_LABEL(dialog->name_label), _("None")); gtk_label_set_text(GTK_LABEL(dialog->type_label), _("None")); gtk_label_set_text(GTK_LABEL(dialog->size_label), _("None")); gtk_label_set_text(GTK_LABEL(dialog->width_label), _("None")); gtk_label_set_text(GTK_LABEL(dialog->height_label), _("None")); gtk_label_set_text(GTK_LABEL(dialog->modified_label), _("None")); } void vnr_properties_dialog_show (VnrPropertiesDialog *dialog) { vnr_properties_dialog_update(dialog); gtk_window_present(GTK_WINDOW(dialog)); } Viewnior-viewnior-1.8/src/vnr-properties-dialog.h000066400000000000000000000056551414645621200222400ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __VNR_PROPERTIES_DIALOG_H__ #define __VNR_PROPERTIES_DIALOG_H__ #include #include #include #include #include #include "uni-image-view.h" #include "vnr-window.h" G_BEGIN_DECLS typedef struct _VnrPropertiesDialog VnrPropertiesDialog; typedef struct _VnrPropertiesDialogClass VnrPropertiesDialogClass; #define VNR_TYPE_PROPERTIES_DIALOG (vnr_properties_dialog_get_type ()) #define VNR_PROPERTIES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VNR_TYPE_PROPERTIES_DIALOG, VnrPropertiesDialog)) #define VNR_PROPERTIES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VNR_TYPE_PROPERTIES_DIALOG, VnrPropertiesDialogClass)) #define VNR_IS_PROPERTIES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VNR_TYPE_PROPERTIES_DIALOG)) #define VNR_IS_PROPERTIES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VNR_TYPE_PROPERTIES_DIALOG)) #define VNR_PROPERTIES_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VNR_TYPE_PROPERTIES_DIALOG, VnrPropertiesDialogClass)) struct _VnrPropertiesDialog { GtkDialog parent; GtkWidget* layout; GtkWidget* image_layout; GtkWidget* image; GtkWidget* meta_names_box; GtkWidget* meta_values_box; GtkWidget* close_button; GtkWidget* next_button; GtkWidget* prev_button; GtkWidget* location_label; GtkWidget* name_label; GtkWidget* type_label; GtkWidget* size_label; GtkWidget* width_label; GtkWidget* height_label; GtkWidget* modified_label; GdkPixbuf *thumbnail; VnrWindow *vnr_win; }; struct _VnrPropertiesDialogClass { GtkDialogClass parent_class; }; GType vnr_properties_dialog_get_type (void) G_GNUC_CONST; GtkWidget* vnr_properties_dialog_new (VnrWindow *vnr_win, GtkAction *next_action, GtkAction *prev_action); void vnr_properties_dialog_update (VnrPropertiesDialog *dialog); void vnr_properties_dialog_update_image (VnrPropertiesDialog *dialog); void vnr_properties_dialog_clear (VnrPropertiesDialog *dialog); void vnr_properties_dialog_show (VnrPropertiesDialog *dialog); G_END_DECLS #endif /* __VNR_PROPERTIES_DIALOG_H__ */ Viewnior-viewnior-1.8/src/vnr-tools.c000077500000000000000000000112461414645621200177360ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include #include #include #include #include #include "vnr-tools.h" void vnr_tools_fit_to_size (gint * width, gint * height, gint max_width, gint max_height) { gfloat ratio, max_ratio; /* if size fits well, then exit */ if (*width < max_width && *height < max_height) return; /* check if dividing by 0 */ if (*width == 0 || max_height == 0) return; ratio = 1. * (*height) / (*width); max_ratio = 1. * max_height / max_width; if (max_ratio > ratio) { *width = max_width; *height = ratio * (*width); } else if (ratio > max_ratio) { *height = max_height; *width = (*height) / ratio; } else { *width = max_width; *height = max_height; } return; } void vnr_tools_fit_to_size_double (gdouble * width, gdouble * height, gint max_width, gint max_height) { gdouble ratio, max_ratio; /* if size fits well, then exit */ if (*width < max_width && *height < max_height) return; /* check if dividing by 0 */ if (*width == 0 || max_height == 0) return; ratio = 1. * (*height) / (*width); max_ratio = 1. * max_height / max_width; if (max_ratio > ratio) { *width = max_width; *height = ratio * (*width); } else if (ratio > max_ratio) { *height = max_height; *width = (*height) / ratio; } else { *width = max_width; *height = max_height; } return; } GSList* vnr_tools_get_list_from_array (gchar **files) { GSList *uri_list = NULL; gint i; if (files == NULL) return NULL; for (i = 0; files[i]; i++) { char *uri_string; GFile *file; file = g_file_new_for_commandline_arg (files[i]); uri_string = g_file_get_path (file); g_object_unref (file); if (uri_string) { uri_list = g_slist_prepend (uri_list, g_strdup (uri_string)); g_free (uri_string); } } return g_slist_reverse (uri_list); } /* modified version of eog's * eog_util_parse_uri_string_list_to_file_list */ GSList* vnr_tools_parse_uri_string_list_to_file_list (const gchar *uri_list) { GSList* file_list = NULL; gsize i = 0; gchar **uris; uris = g_uri_list_extract_uris (uri_list); while (uris[i] != NULL) { gchar* current_path = g_file_get_path (g_file_new_for_uri(uris[i])); if(current_path != NULL) file_list = g_slist_append (file_list, current_path); i++; } g_strfreev (uris); return g_slist_reverse (file_list); } gint compare_quarks (gconstpointer a, gconstpointer b) { GQuark quark; quark = g_quark_from_string ((const gchar *) a); return quark - GPOINTER_TO_INT (b); } void get_position_of_element_in_list (GList *list, gint *current, gint *total) { GList *it; gint after, before; after = before = 0; it = list; for(it = list; it != NULL; it = it->next) { after ++; } for(it = list; it != NULL; it = it->prev) { before ++; } *current = before; *total = before + after - 1; } void vnr_tools_apply_embedded_orientation (GdkPixbufAnimation **anim) { GdkPixbuf *pixbuf; GdkPixbuf *original; if(!gdk_pixbuf_animation_is_static_image (*anim)) return; pixbuf = gdk_pixbuf_animation_get_static_image (*anim); original = pixbuf; pixbuf = gdk_pixbuf_apply_embedded_orientation(pixbuf); if(original == pixbuf) { g_object_unref(pixbuf); return; } GdkPixbufSimpleAnim *s_anim; s_anim = gdk_pixbuf_simple_anim_new (gdk_pixbuf_get_width(pixbuf), gdk_pixbuf_get_height(pixbuf), -1); gdk_pixbuf_simple_anim_add_frame(s_anim, pixbuf); g_object_unref(pixbuf); g_object_unref(*anim); *anim = GDK_PIXBUF_ANIMATION(s_anim); } Viewnior-viewnior-1.8/src/vnr-tools.h000077500000000000000000000024661414645621200177470ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __VNR_TOOLS_H__ #define __VNR_TOOLS_H__ void vnr_tools_fit_to_size (gint * w, gint * h, gint mw, gint mh); void vnr_tools_fit_to_size_double (gdouble * w, gdouble * h, gint mw, gint mh); GSList *vnr_tools_get_list_from_array (gchar **files); GSList *vnr_tools_parse_uri_string_list_to_file_list (const gchar *uri_list); void vnr_tools_apply_embedded_orientation (GdkPixbufAnimation **anim); gint compare_quarks (gconstpointer a, gconstpointer b); void get_position_of_element_in_list(GList *list, gint *current, gint *total); #endif /* __VNR_TOOLS_H__ */ Viewnior-viewnior-1.8/src/vnr-window.c000077500000000000000000002741371414645621200201170ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #include #include #include #define _(String) gettext (String) #include "config.h" #include #include #include #include #include #include #include #include "vnr-window.h" #include "uni-scroll-win.h" #include "uni-anim-view.h" #include "vnr-tools.h" #include "vnr-file.h" #include "vnr-message-area.h" #include "vnr-properties-dialog.h" #include "vnr-crop.h" #include "uni-exiv2.hpp" #include "uni-utils.h" /* Timeout to hide the toolbar in fullscreen mode */ #define FULLSCREEN_TIMEOUT 1000 #define DARK_BACKGROUND_COLOR "#222222" G_DEFINE_TYPE (VnrWindow, vnr_window, GTK_TYPE_WINDOW); static void vnr_window_unfullscreen (VnrWindow *window); static void stop_slideshow(VnrWindow *window); static void start_slideshow(VnrWindow *window); static void restart_slideshow(VnrWindow *window); static void allow_slideshow(VnrWindow *window); static gint get_top_widgets_height(VnrWindow *window); static void leave_fs_cb (GtkButton *button, VnrWindow *window); static void toggle_show_next_cb (GtkToggleButton *togglebutton, VnrWindow *window); static void spin_value_change_cb (GtkSpinButton *spinbutton, VnrWindow *window); static void save_image_cb (GtkWidget *widget, VnrWindow *window); static void zoom_changed_cb (UniImageView *view, VnrWindow *window); static gboolean fullscreen_timeout_cb (VnrWindow *window); static gboolean leave_image_area_cb(GtkWidget * widget, GdkEventCrossing * ev, VnrWindow *window); static gboolean fullscreen_motion_cb(GtkWidget * widget, GdkEventMotion * ev, VnrWindow *window); static void open_with_launch_application_cb (GtkAction *action, VnrWindow *window); const gchar *ui_definition = "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""; const gchar *ui_definition_wallpaper = "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""; /*************************************************************/ /***** Private actions ***************************************/ /*************************************************************/ /* Modified version of eog's eog_window_update_openwith_menu */ static void vnr_window_update_openwith_menu (VnrWindow *window) { GFile *file; GFileInfo *file_info; GList *iter; gchar *label, *tip; const gchar *mime_type; GtkAction *action; GList *apps; guint action_id = 0; file = g_file_new_for_path ((gchar*)VNR_FILE(window->file_list->data)->path); file_info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, 0, NULL, NULL); if (file_info == NULL) return; else mime_type = g_file_info_get_content_type (file_info); if (window->open_with_menu_id != 0) { gtk_ui_manager_remove_ui (window->ui_mngr, window->open_with_menu_id); window->open_with_menu_id = 0; } if (window->actions_open_with != NULL) { gtk_ui_manager_remove_action_group (window->ui_mngr, window->actions_open_with); window->actions_open_with = NULL; } if (mime_type == NULL) { g_object_unref (file_info); return; } apps = g_app_info_get_all_for_type (mime_type); g_object_unref (file_info); if (!apps) return; window->actions_open_with = gtk_action_group_new ("OpenWithActions"); gtk_ui_manager_insert_action_group (window->ui_mngr, window->actions_open_with, -1); window->open_with_menu_id = gtk_ui_manager_new_merge_id (window->ui_mngr); for (iter = apps; iter; iter = iter->next) { GAppInfo *app = iter->data; gchar name[64]; /* Do not include viewnior itself */ if (g_ascii_strcasecmp (g_app_info_get_executable (app), g_get_prgname ()) == 0) { g_object_unref (app); continue; } g_snprintf (name, sizeof (name), "OpenWith%u", action_id++); label = g_strdup (g_app_info_get_name (app)); tip = g_strdup_printf (_("Use \"%s\" to open the selected image"), g_app_info_get_name (app)); action = gtk_action_new (name, label, tip, NULL); g_free (label); g_free (tip); g_object_set_data_full (G_OBJECT (action), "app", app, (GDestroyNotify) g_object_unref); g_signal_connect (action, "activate", G_CALLBACK (open_with_launch_application_cb), window); gtk_action_group_add_action (window->actions_open_with, action); g_object_unref (action); gtk_ui_manager_add_ui (window->ui_mngr, window->open_with_menu_id, "/MainMenu/File/FileOpenWith/AppEntries", name, name, GTK_UI_MANAGER_MENUITEM, FALSE); gtk_ui_manager_add_ui (window->ui_mngr, window->open_with_menu_id, "/MainMenu/FileOpenWith/AppEntries", name, name, GTK_UI_MANAGER_MENUITEM, FALSE); gtk_ui_manager_add_ui (window->ui_mngr, window->open_with_menu_id, "/PopupMenu/FileOpenWith/AppEntries", name, name, GTK_UI_MANAGER_MENUITEM, FALSE); } g_list_free (apps); } static void vnr_window_save_accel_map() { gchar *accelfile = g_build_filename (g_get_user_config_dir(), PACKAGE, "accel_map", NULL); gtk_accel_map_save (accelfile); g_free (accelfile); } static void vnr_window_load_accel_map() { gchar *accelfile = g_build_filename (g_get_user_config_dir(), PACKAGE, "accel_map", NULL); gtk_accel_map_load (accelfile); g_free (accelfile); } static void vnr_window_hide_cursor(VnrWindow *window) { gdk_window_set_cursor (gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_BLANK_CURSOR)); window->cursor_is_hidden = TRUE; gdk_flush(); } static void vnr_window_show_cursor(VnrWindow *window) { gdk_window_set_cursor (gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_LEFT_PTR)); window->cursor_is_hidden = FALSE; gdk_flush(); } static void update_fs_filename_label(VnrWindow *window) { if(window->mode == VNR_WINDOW_MODE_NORMAL) return; gint position, total; char *buf; get_position_of_element_in_list(window->file_list, &position, &total); buf = g_strdup_printf ("%s - %i/%i", VNR_FILE(window->file_list->data)->display_name, position, total); gtk_label_set_text(GTK_LABEL(window->fs_filename_label), buf); g_free(buf); } static gboolean next_image_src(VnrWindow *window) { if(g_list_length(g_list_first(window->file_list)) <= 1) return FALSE; else vnr_window_next(window, FALSE); window->ss_source_tag = g_timeout_add_seconds (window->ss_timeout, (GSourceFunc)next_image_src, window); return FALSE; } static void fullscreen_unset_timeout(VnrWindow *window) { if(window->fs_source != NULL) { g_source_unref (window->fs_source); g_source_destroy (window->fs_source); window->fs_source = NULL; } } static void fullscreen_set_timeout(VnrWindow *window) { fullscreen_unset_timeout(window); window->fs_source = g_timeout_source_new (FULLSCREEN_TIMEOUT); g_source_set_callback (window->fs_source, (GSourceFunc)fullscreen_timeout_cb, window, NULL); g_source_attach (window->fs_source, NULL); } static GtkWidget * get_fs_controls(VnrWindow *window) { if(window->fs_controls != NULL) return window->fs_controls; GtkWidget *box; GtkToolItem *item; GtkWidget *widget; GtkAdjustment *spinner_adj; /* Tool item, that contains the hbox */ item = gtk_tool_item_new(); gtk_tool_item_set_expand(item, TRUE); box = gtk_hbox_new(FALSE, 0); gtk_container_add (GTK_CONTAINER (item), box); widget = gtk_button_new_from_stock(GTK_STOCK_LEAVE_FULLSCREEN); g_signal_connect(widget, "clicked", G_CALLBACK(leave_fs_cb), window); gtk_box_pack_end (GTK_BOX(box), widget, FALSE, FALSE, 0); /* Create label for the current image's filename */ widget = gtk_label_new(NULL); gtk_label_set_ellipsize (GTK_LABEL(widget), PANGO_ELLIPSIZE_END); gtk_label_set_selectable (GTK_LABEL(widget), TRUE); window->fs_filename_label = widget; gtk_box_pack_end (GTK_BOX(box), widget, TRUE, TRUE, 10); widget = gtk_vseparator_new(); gtk_box_pack_start (GTK_BOX(box), widget, FALSE, FALSE, 0); widget = gtk_check_button_new_with_label(_("Show next image after: ")); g_signal_connect (widget, "toggled", G_CALLBACK(toggle_show_next_cb), window); gtk_box_pack_start (GTK_BOX(box), widget, FALSE, FALSE, 0); window->toggle_btn = widget; /* Create spin button to adjust slideshow's timeout */ //spinner_adj = (GtkAdjustment *) gtk_adjustment_new (5, 1.0, 30.0, 1.0, 1.0, 0); spinner_adj = (GtkAdjustment *) gtk_adjustment_new (window->prefs->slideshow_timeout, 1.0, 30.0, 1.0, 1.0, 0); widget = gtk_spin_button_new (spinner_adj, 1.0, 0); gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON(widget), TRUE); gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON(widget), GTK_UPDATE_ALWAYS); g_signal_connect (widget, "value-changed", G_CALLBACK(spin_value_change_cb), window); gtk_box_pack_start (GTK_BOX(box), widget, FALSE, FALSE, 0); window->ss_timeout_widget = widget; window->fs_seconds_label = gtk_label_new(ngettext(" second", " seconds", 5)); gtk_box_pack_start (GTK_BOX(box), window->fs_seconds_label, FALSE, FALSE, 0); window->fs_controls = GTK_WIDGET(item); gtk_widget_show_all (window->fs_controls); return window->fs_controls; } static void vnr_window_set_drag(VnrWindow *window) { gtk_drag_dest_set (GTK_WIDGET (window), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, NULL, 0, GDK_ACTION_COPY | GDK_ACTION_ASK); gtk_drag_dest_add_uri_targets (GTK_WIDGET (window)); } static void vnr_window_fullscreen(VnrWindow *window) { GdkColor color; GtkAction *action; gdk_color_parse ("black", &color); gtk_widget_hide(window->menu_bar); gtk_window_fullscreen(GTK_WINDOW(window)); window->mode = VNR_WINDOW_MODE_FULLSCREEN; action = gtk_action_group_get_action (window->actions_image, "ViewFullscreen"); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE); gtk_widget_modify_bg(window->view, GTK_STATE_NORMAL, &color); if (window->prefs->fit_on_fullscreen) uni_image_view_set_zoom_mode (UNI_IMAGE_VIEW(window->view), VNR_PREFS_ZOOM_FIT); update_fs_filename_label(window); gtk_widget_hide (window->toolbar); gtk_widget_hide (window->statusbar); if (window->prefs->show_menu_bar) gtk_widget_show (window->properties_button); gtk_widget_show (window->fs_controls); stop_slideshow(window); /* Reset timeouts for the toolbar autohide when the mouse * moves over the UniImageviewer. * "after" because it must be called after the uniImageView's * callback (when the image is dragged).*/ g_signal_connect_after (window->view, "motion-notify-event", G_CALLBACK (fullscreen_motion_cb), window); /* Never hide the toolbar, while the mouse is over it */ g_signal_connect (window->toolbar, "enter-notify-event", G_CALLBACK (leave_image_area_cb), window); g_signal_connect (window->msg_area, "enter-notify-event", G_CALLBACK (leave_image_area_cb), window); fullscreen_set_timeout(window); } static void vnr_window_unfullscreen(VnrWindow *window) { if(window->mode == VNR_WINDOW_MODE_NORMAL) return; GtkAction *action; stop_slideshow(window); window->mode = VNR_WINDOW_MODE_NORMAL; gtk_widget_show(window->menu_bar); gtk_window_unfullscreen(GTK_WINDOW(window)); action = gtk_action_group_get_action (window->actions_image, "ViewFullscreen"); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), FALSE); if (window->prefs->dark_background) { GdkColor color; gdk_color_parse (DARK_BACKGROUND_COLOR, &color); gtk_widget_modify_bg(window->view, GTK_STATE_NORMAL, &color); } else { gtk_widget_modify_bg(window->view, GTK_STATE_NORMAL, NULL); } if (window->prefs->fit_on_fullscreen) uni_image_view_set_zoom_mode (UNI_IMAGE_VIEW(window->view), window->prefs->zoom); if(window->prefs->show_menu_bar) gtk_widget_hide (window->properties_button); else gtk_widget_hide (window->menu_bar); gtk_widget_hide (window->fs_controls); if(!window->prefs->show_toolbar) gtk_widget_hide (window->toolbar); else gtk_widget_show (window->toolbar); if(!window->prefs->show_statusbar) gtk_widget_hide (window->statusbar); else gtk_widget_show (window->statusbar); g_signal_handlers_disconnect_by_func(window->view, G_CALLBACK(fullscreen_motion_cb), window); g_signal_handlers_disconnect_by_func(window->toolbar, G_CALLBACK(leave_image_area_cb), window); g_signal_handlers_disconnect_by_func(window->msg_area, G_CALLBACK(leave_image_area_cb), window); fullscreen_unset_timeout(window); vnr_window_show_cursor(window); } static void stop_slideshow(VnrWindow *window) { if(!window->slideshow) return; if(window->mode != VNR_WINDOW_MODE_SLIDESHOW) return; GtkAction *action; action = gtk_action_group_get_action (window->actions_collection, "ViewSlideshow"); window->slideshow = FALSE; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(window->toggle_btn), FALSE); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), FALSE); window->slideshow = TRUE; window->mode = VNR_WINDOW_MODE_FULLSCREEN; g_source_remove (window->ss_source_tag); } static void start_slideshow(VnrWindow *window) { if(!window->slideshow) return; if(window->mode == VNR_WINDOW_MODE_SLIDESHOW) return; window->mode = VNR_WINDOW_MODE_SLIDESHOW; window->ss_source_tag = g_timeout_add_seconds (window->ss_timeout, (GSourceFunc)next_image_src, window); GtkAction *action; action = gtk_action_group_get_action (window->actions_collection, "ViewSlideshow"); window->slideshow = FALSE; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(window->toggle_btn), TRUE); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE); window->slideshow = TRUE; } static void restart_slideshow(VnrWindow *window) { if(!window->slideshow) return; if(window->mode != VNR_WINDOW_MODE_SLIDESHOW) return; g_source_remove (window->ss_source_tag); window->ss_source_tag = g_timeout_add_seconds (window->ss_timeout, (GSourceFunc)next_image_src, window); } static void allow_slideshow(VnrWindow *window) { if(window->slideshow) return; window->slideshow = TRUE; gtk_widget_set_sensitive(window->toggle_btn, TRUE); } static gint get_top_widgets_height(VnrWindow *window) { GtkAllocation allocation; if (!window->prefs->show_menu_bar && !window->prefs->show_toolbar) { return 0; } gtk_widget_get_allocation (window->menus, &allocation); return allocation.height; } void deny_slideshow(VnrWindow *window) { if(!window->slideshow) return; window->slideshow = FALSE; gtk_widget_set_sensitive(window->toggle_btn, FALSE); } static void rotate_pixbuf(VnrWindow *window, GdkPixbufRotation angle) { GdkPixbuf *result; if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_WATCH)); /* This makes the cursor show NOW */ gdk_flush(); /* Stop slideshow while editing the image */ stop_slideshow(window); result = gdk_pixbuf_rotate_simple(UNI_IMAGE_VIEW(window->view)->pixbuf, angle); if(result == NULL) { vnr_message_area_show(VNR_MESSAGE_AREA(window->msg_area), TRUE, _("Not enough virtual memory."), FALSE); return; } uni_anim_view_set_static(UNI_ANIM_VIEW(window->view), result); if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_LEFT_PTR)); g_object_unref(result); window->current_image_width = gdk_pixbuf_get_width (result); window->current_image_height = gdk_pixbuf_get_height (result); if(gtk_widget_get_visible(window->props_dlg)) vnr_properties_dialog_update_image(VNR_PROPERTIES_DIALOG(window->props_dlg)); /* Extra conditions. Rotating 180 degrees is also flipping horizontal and vertical */ if((window->modifications & (4))^((angle==GDK_PIXBUF_ROTATE_CLOCKWISE)<<2)) window->modifications ^= 3; window->modifications ^= 4; gtk_action_group_set_sensitive(window->action_save, window->modifications); if(window->modifications == 0 && window->prefs->behavior_modify != VNR_PREFS_MODIFY_IGNORE) { vnr_message_area_hide(VNR_MESSAGE_AREA(window->msg_area)); return; } if(window->writable_format_name == NULL) vnr_message_area_show(VNR_MESSAGE_AREA(window->msg_area), TRUE, _("Image modifications cannot be saved.\nWriting in this format is not supported."), FALSE); else if(window->prefs->behavior_modify == VNR_PREFS_MODIFY_SAVE) save_image_cb(NULL, window); else if(window->prefs->behavior_modify == VNR_PREFS_MODIFY_ASK) vnr_message_area_show_with_button(VNR_MESSAGE_AREA(window->msg_area), FALSE, _("Save modifications?\nThis will overwrite the image and may reduce its quality!"), FALSE, GTK_STOCK_SAVE, G_CALLBACK(save_image_cb)); } static void flip_pixbuf(VnrWindow *window, gboolean horizontal) { GdkPixbuf *result; if(!window->cursor_is_hidden) gdk_window_set_cursor (gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_WATCH)); /* This makes the cursor show NOW */ gdk_flush(); result = gdk_pixbuf_flip(UNI_IMAGE_VIEW(window->view)->pixbuf, horizontal); if(result == NULL) { vnr_message_area_show(VNR_MESSAGE_AREA(window->msg_area), TRUE, _("Not enough virtual memory."), FALSE); return; } uni_anim_view_set_static(UNI_ANIM_VIEW(window->view), result); if(gtk_widget_get_visible(window->props_dlg)) vnr_properties_dialog_update_image(VNR_PROPERTIES_DIALOG(window->props_dlg)); if(!window->cursor_is_hidden) gdk_window_set_cursor (gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_LEFT_PTR)); g_object_unref(result); /* Extra conditions. Rotating 180 degrees is also flipping horizontal and vertical */ window->modifications ^= (window->modifications&4)?1+horizontal:2-horizontal; gtk_action_group_set_sensitive(window->action_save, window->modifications); if(window->modifications == 0) { vnr_message_area_hide(VNR_MESSAGE_AREA(window->msg_area)); return; } if(window->writable_format_name == NULL) vnr_message_area_show(VNR_MESSAGE_AREA(window->msg_area), TRUE, _("Image modifications cannot be saved.\nWriting in this format is not supported."), FALSE); else if(window->prefs->behavior_modify == VNR_PREFS_MODIFY_SAVE) save_image_cb(NULL, window); else if(window->prefs->behavior_modify == VNR_PREFS_MODIFY_ASK) vnr_message_area_show_with_button(VNR_MESSAGE_AREA(window->msg_area), FALSE, _("Save modifications?\nThis will overwrite the image and may reduce its quality!"), FALSE, GTK_STOCK_SAVE, G_CALLBACK(save_image_cb)); } /*************************************************************/ /***** Private signal handlers *******************************/ /*************************************************************/ /* Modified version of eog's open_with_launch_application_cb */ static void open_with_launch_application_cb (GtkAction *action, VnrWindow *window) { GAppInfo *app; GFile *file; GList *files = NULL; file = g_file_new_for_path ((gchar*)VNR_FILE(window->file_list->data)->path); app = g_object_get_data (G_OBJECT (action), "app"); files = g_list_append (files, file); g_app_info_launch (app, files, NULL, NULL); g_object_unref (file); g_list_free (files); } static gboolean leave_image_area_cb(GtkWidget * widget, GdkEventCrossing * ev, VnrWindow *window) { fullscreen_unset_timeout (window); return FALSE; } static gboolean fullscreen_motion_cb(GtkWidget * widget, GdkEventMotion * ev, VnrWindow *window) { if(window->disable_autohide) return FALSE; /* Show the toolbar only when the mouse moves to the top * of the UniImageView */ if (ev->y < 20 && !gtk_widget_get_visible (window->toolbar)) gtk_widget_show (GTK_WIDGET (window->toolbar)); if(window->cursor_is_hidden) vnr_window_show_cursor(window); fullscreen_set_timeout(window); return FALSE; } /* Hides the toolbar */ static gboolean fullscreen_timeout_cb (VnrWindow *window) { fullscreen_unset_timeout (window); if(window->disable_autohide) return FALSE; gtk_widget_hide (window->toolbar); vnr_window_hide_cursor(window); return FALSE; } static void spin_value_change_cb (GtkSpinButton *spinbutton, VnrWindow *window) { int new_value = gtk_spin_button_get_value_as_int (spinbutton); if(new_value != window->prefs->slideshow_timeout) vnr_prefs_set_slideshow_timeout(window->prefs, new_value); gtk_label_set_text (GTK_LABEL(window->fs_seconds_label), ngettext(" second", " seconds", new_value)); window->ss_timeout = new_value; restart_slideshow(window); } static void toggle_show_next_cb (GtkToggleButton *togglebutton, VnrWindow *window) { if(!window->slideshow) return; if(window->mode == VNR_WINDOW_MODE_FULLSCREEN) start_slideshow(window); else if(window->mode == VNR_WINDOW_MODE_SLIDESHOW) stop_slideshow(window); } static void save_image_cb (GtkWidget *widget, VnrWindow *window) { GError *error = NULL; if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_WATCH)); /* This makes the cursor show NOW */ gdk_flush(); if(window->prefs->behavior_modify == VNR_PREFS_MODIFY_ASK) vnr_message_area_hide(VNR_MESSAGE_AREA(window->msg_area)); /* Store exiv2 metadata to cache, so we can restore it afterwards */ uni_read_exiv2_to_cache(VNR_FILE(window->file_list->data)->path); if(g_strcmp0(window->writable_format_name, "jpeg" ) == 0) { gchar *quality; quality = g_strdup_printf ("%i", window->prefs->jpeg_quality); gdk_pixbuf_save (uni_image_view_get_pixbuf(UNI_IMAGE_VIEW(window->view)), VNR_FILE(window->file_list->data)->path, "jpeg", &error, "quality", quality, NULL); g_free(quality); } else if(g_strcmp0(window->writable_format_name, "png" ) == 0) { gchar *compression; compression = g_strdup_printf ("%i", window->prefs->png_compression); gdk_pixbuf_save (uni_image_view_get_pixbuf(UNI_IMAGE_VIEW(window->view)), VNR_FILE(window->file_list->data)->path, "png", &error, "compression", compression, NULL); g_free(compression); } else { gdk_pixbuf_save (uni_image_view_get_pixbuf(UNI_IMAGE_VIEW(window->view)), VNR_FILE(window->file_list->data)->path, window->writable_format_name, &error, NULL); } uni_write_exiv2_from_cache(VNR_FILE(window->file_list->data)->path); if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_LEFT_PTR)); if(error != NULL) { vnr_message_area_show(VNR_MESSAGE_AREA(window->msg_area), TRUE, error->message, FALSE); return; } if(window->prefs->reload_on_save) { vnr_window_open(window, FALSE); return; } window->modifications = 0; gtk_action_group_set_sensitive(window->action_save, FALSE); if(window->prefs->behavior_modify != VNR_PREFS_MODIFY_ASK) zoom_changed_cb(UNI_IMAGE_VIEW(window->view), window); if(gtk_widget_get_visible(window->props_dlg)) vnr_properties_dialog_update(VNR_PROPERTIES_DIALOG(window->props_dlg)); } static void vnr_window_main_menu_position (GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer user_data) { VnrWindow *window = VNR_WINDOW(user_data); GtkWidget *button = window->properties_button; GdkWindow *gdk_window = gtk_widget_get_window(button); GtkRequisition req = {0, 0}; GtkAllocation toolbar_allocation; GtkAllocation button_allocation; gdk_window_get_position(gdk_window, x, y); // in maximuzed and fullscreen states gdk_window_get_position returns 0 if ( *x == 0 && gtk_widget_get_visible ( get_fs_controls(window)) ) { GtkAllocation allocation; gtk_widget_get_allocation(get_fs_controls(window), &allocation); *x -= allocation.width; } gtk_widget_size_request(GTK_WIDGET(menu), &req); gtk_widget_get_allocation(window->toolbar, &toolbar_allocation); gtk_widget_get_allocation(button, &button_allocation); *x += toolbar_allocation.width - req.width; *y += button_allocation.height; } static void vnr_window_cmd_open_menu (GtkToggleAction *action, VnrWindow *window) { if( !gtk_toggle_action_get_active (action)) { return; } gtk_menu_popup(GTK_MENU(window->button_menu), NULL, NULL, vnr_window_main_menu_position, window, 0, gtk_get_current_event_time()); return; } static void vnr_window_cmd_main_menu_hidden (GtkWidget *widget, gpointer user_data) { gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(VNR_WINDOW(user_data)->properties_button), FALSE); } static void leave_fs_cb (GtkButton *button, VnrWindow *window) { vnr_window_unfullscreen (window); } static void window_realize_cb(GtkWidget *widget, gpointer user_data) { g_signal_handlers_disconnect_by_func(widget, window_realize_cb, user_data); if(!vnr_message_area_is_critical(VNR_MESSAGE_AREA(VNR_WINDOW(widget)->msg_area))) { if ( VNR_WINDOW(widget)->prefs->start_maximized ) { vnr_window_open(VNR_WINDOW(widget), FALSE); } else { GdkScreen *screen; GdkRectangle monitor; screen = gtk_window_get_screen (GTK_WINDOW (widget)); gdk_screen_get_monitor_geometry (screen, gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (widget)), &monitor); VNR_WINDOW(widget)->max_width = monitor.width * 0.9 - 100; VNR_WINDOW(widget)->max_height = monitor.height * 0.9 - 100; vnr_window_open(VNR_WINDOW(widget), TRUE); } if ( VNR_WINDOW(widget)->prefs->start_slideshow && VNR_WINDOW(widget)->file_list != NULL ) { vnr_window_fullscreen(VNR_WINDOW(widget)); VNR_WINDOW(widget)->mode = VNR_WINDOW_MODE_NORMAL; allow_slideshow(VNR_WINDOW(widget)); start_slideshow(VNR_WINDOW(widget)); } else if ( VNR_WINDOW(widget)->prefs->start_fullscreen && VNR_WINDOW(widget)->file_list != NULL ) { vnr_window_fullscreen(VNR_WINDOW(widget)); } } } static gboolean window_change_state_cb (GtkWidget * widget, GdkEventWindowState * event, gpointer user_data) { if ( event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED ) { /* Detect maximized state only */ if ( event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED ) { VNR_WINDOW(widget)->prefs->start_maximized = TRUE; } else { VNR_WINDOW(widget)->prefs->start_maximized = FALSE; } vnr_prefs_save(VNR_WINDOW(widget)->prefs); } return TRUE; } static void window_destroy_cb (GtkWidget *widget, gpointer user_data) { vnr_window_save_accel_map(); vnr_prefs_save(VNR_WINDOW(widget)->prefs); gtk_main_quit(); } static void zoom_changed_cb (UniImageView *view, VnrWindow *window) { gint position, total; char *buf = NULL; /* Change the info, only if there is an image * (vnr_window_close isn't called on the current image) */ if(gtk_action_group_get_sensitive (window->actions_image)) { get_position_of_element_in_list(window->file_list, &position, &total); buf = g_strdup_printf ("%s%s - %i/%i - %ix%i - %i%%", (window->modifications)?"*":"", VNR_FILE(window->file_list->data)->display_name, position, total, window->current_image_width, window->current_image_height, (int)(view->zoom*100.)); gtk_window_set_title (GTK_WINDOW(window), buf); gint context_id = gtk_statusbar_get_context_id(GTK_STATUSBAR(window->statusbar), "statusbar"); gtk_statusbar_pop (GTK_STATUSBAR(window->statusbar), GPOINTER_TO_INT(context_id)); gtk_statusbar_push(GTK_STATUSBAR(window->statusbar), GPOINTER_TO_INT(context_id), buf); g_free(buf); } } static void window_drag_begin_cb (GtkWidget *widget, GdkDragContext *drag_context, GtkSelectionData *data, guint info, guint time, gpointer user_data) { gchar *uris[2]; uris[0] = g_filename_to_uri((gchar*)VNR_FILE(VNR_WINDOW(user_data)->file_list->data)->path, NULL, NULL); uris[1] = NULL; gtk_selection_data_set_uris (data, uris); g_free(uris[0]); } static void file_open_dialog_response_cb (GtkWidget *dialog, gint response_id, VnrWindow *window) { if (response_id == GTK_RESPONSE_ACCEPT) { GSList *uri_list = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (dialog)); g_return_if_fail(uri_list != NULL); vnr_window_open_from_list(window, uri_list); g_slist_free_full(uri_list, g_free); } gtk_widget_destroy (dialog); } static void vnr_window_cmd_preferences(GtkAction *action, gpointer user_data) { vnr_prefs_show_dialog(VNR_WINDOW(user_data)->prefs); } static void vnr_window_cmd_flip_horizontal(GtkAction *action, VnrWindow *window) { if ( !gtk_action_group_get_sensitive(window->actions_static_image) ) return; flip_pixbuf(window, TRUE); } static void vnr_window_cmd_flip_vertical(GtkAction *action, VnrWindow *window) { if ( !gtk_action_group_get_sensitive(window->actions_static_image) ) return; flip_pixbuf(window, FALSE); } static void vnr_window_cmd_rotate_cw(GtkAction *action, gpointer user_data) { rotate_pixbuf(VNR_WINDOW(user_data), GDK_PIXBUF_ROTATE_CLOCKWISE); } static void vnr_window_cmd_rotate_ccw(GtkAction *action, gpointer user_data) { rotate_pixbuf(VNR_WINDOW(user_data), GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE); } static void vnr_window_cmd_zoom_in (GtkAction *action, gpointer user_data) { uni_image_view_zoom_in(UNI_IMAGE_VIEW(VNR_WINDOW(user_data)->view)); } static void vnr_window_cmd_zoom_out (GtkAction *action, gpointer user_data) { uni_image_view_zoom_out(UNI_IMAGE_VIEW(VNR_WINDOW(user_data)->view)); } static void vnr_window_cmd_normal_size (GtkAction *action, gpointer user_data) { uni_image_view_set_zoom(UNI_IMAGE_VIEW(VNR_WINDOW(user_data)->view), 1); uni_image_view_set_fitting(UNI_IMAGE_VIEW(VNR_WINDOW(user_data)->view), UNI_FITTING_NONE); } static void vnr_window_cmd_fit (GtkAction *action, gpointer user_data) { uni_image_view_set_fitting(UNI_IMAGE_VIEW(VNR_WINDOW(user_data)->view), UNI_FITTING_FULL); } static void vnr_window_cmd_next (GtkAction *action, gpointer user_data) { vnr_window_next(VNR_WINDOW(user_data), TRUE); } static void vnr_window_cmd_first (GtkAction *action, gpointer user_data) { vnr_window_first(VNR_WINDOW(user_data)); } static void vnr_window_cmd_last (GtkAction *action, gpointer user_data) { vnr_window_last(VNR_WINDOW(user_data)); } static void vnr_window_cmd_prev (GtkAction *action, gpointer user_data) { vnr_window_prev(VNR_WINDOW(user_data)); } static void vnr_window_cmd_resize (GtkToggleAction *action, VnrWindow *window) { if ( action != NULL && !gtk_toggle_action_get_active(action) ) { window->prefs->auto_resize = FALSE; return; } gint img_h, img_w; /* Width and Height of the pixbuf */ img_w = window->current_image_width; img_h = window->current_image_height; if ( img_w == 0 || img_h == 0 ) return; window->prefs->auto_resize = TRUE; vnr_tools_fit_to_size (&img_w, &img_h, window->max_width, window->max_height); gtk_window_resize (GTK_WINDOW (window), img_w, img_h + get_top_widgets_height(window)); } static void vnr_window_cmd_properties (GtkAction *action, VnrWindow *window) { vnr_properties_dialog_show(VNR_PROPERTIES_DIALOG (window->props_dlg)); } static void vnr_window_cmd_reload (GtkAction *action, VnrWindow *window) { vnr_window_open(window, FALSE); } static gboolean file_size_is_small(char *filename) { struct stat st; int four_mb = 4 * 1024 * 1024; if(filename != NULL && stat(filename, &st) == 0) { return st.st_size < four_mb; } return FALSE; } static void update_preview_cb(GtkFileChooser *file_chooser, gpointer data) { GtkWidget *preview = GTK_WIDGET(data); char *filename = gtk_file_chooser_get_preview_filename(file_chooser); gboolean has_preview = FALSE; if(file_size_is_small(filename)) { GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size(filename, 256, 256, NULL); has_preview = pixbuf != NULL; gtk_image_set_from_pixbuf(GTK_IMAGE(preview), pixbuf); if(pixbuf) { g_object_unref(pixbuf); } } gtk_file_chooser_set_preview_widget_active(file_chooser, has_preview); if(filename != NULL) { g_free(filename); } } static void vnr_window_cmd_open(GtkAction *action, VnrWindow *window) { GtkWidget *dialog; GtkWidget *preview; GtkFileFilter *img_filter; GtkFileFilter *all_filter; dialog = gtk_file_chooser_dialog_new (_("Open Image"), GTK_WINDOW(window), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); img_filter = gtk_file_filter_new (); g_assert (img_filter != NULL); gtk_file_filter_add_pixbuf_formats (img_filter); gtk_file_filter_add_mime_type (img_filter, "image/vnd.microsoft.icon"); gtk_file_filter_set_name (img_filter, _("All Images")); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), img_filter); all_filter = gtk_file_filter_new (); g_assert(all_filter != NULL); gtk_file_filter_add_pattern (all_filter, "*"); gtk_file_filter_set_name (all_filter, _("All Files")); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), all_filter); gtk_window_set_modal (GTK_WINDOW(dialog), FALSE); gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), TRUE); gtk_file_chooser_set_filter (GTK_FILE_CHOOSER(dialog), img_filter); preview = gtk_image_new(); gtk_file_chooser_set_preview_widget(GTK_FILE_CHOOSER(dialog), preview); g_signal_connect(GTK_FILE_CHOOSER(dialog), "update-preview", G_CALLBACK(update_preview_cb), preview); if(window->file_list != NULL) { gchar *dirname = g_path_get_dirname (VNR_FILE(window->file_list->data)->path); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(dialog), dirname); g_free(dirname); } g_signal_connect (dialog, "response", G_CALLBACK (file_open_dialog_response_cb), window); gtk_widget_show_all (GTK_WIDGET(dialog)); /* This only works when here. */ gtk_file_chooser_set_show_hidden (GTK_FILE_CHOOSER(dialog), window->prefs->show_hidden); } static void vnr_window_cmd_open_dir(GtkAction *action, VnrWindow *window) { GtkWidget *dialog; dialog = gtk_file_chooser_dialog_new (_("Open Folder"), GTK_WINDOW(window), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_modal (GTK_WINDOW(dialog), FALSE); gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), TRUE); if(window->file_list != NULL) { gchar *dirname = g_path_get_dirname (VNR_FILE(window->file_list->data)->path); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(dialog), dirname); g_free(dirname); } g_signal_connect (dialog, "response", G_CALLBACK (file_open_dialog_response_cb), window); gtk_widget_show_all (GTK_WIDGET(dialog)); /* This only works when here. */ gtk_file_chooser_set_show_hidden (GTK_FILE_CHOOSER(dialog), window->prefs->show_hidden); } static void vnr_window_cmd_about (GtkAction *action, VnrWindow *window) { static const char *authors[] = { "Programming & icon design", "\tSiyan Panayotov ", "\nRefer to source code from GtkImageView", NULL }; char *license = ("Viewnior is free software: you can redistribute it and/or modify " "it under the terms of the GNU General Public License as published by " "the Free Software Foundation, either version 3 of the License, or " "(at your option) any later version.\n\n" "Viewnior is distributed in the hope that 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 Viewnior. If not, see .\n"); gtk_show_about_dialog (GTK_WINDOW (window), "program-name", "Viewnior", "version", VERSION, "copyright", "Copyright \xc2\xa9 2009-2018 Siyan Panayotov ", "comments",_("Elegant Image Viewer"), "authors", authors, "logo-icon-name", "viewnior", "wrap-license", TRUE, "license", license, "website", "http://siyanpanayotov.com/project/viewnior/", "translator-credits", _( "translator-credits" ), NULL); } static void vnr_set_wallpaper(GtkAction *action, VnrWindow *win) { pid_t pid; pid = fork(); if ( pid == 0 ) { gchar * tmp; VnrPrefsDesktop desktop_environment = win->prefs->desktop; if (desktop_environment == VNR_PREFS_DESKTOP_AUTO) { desktop_environment = uni_detect_desktop_environment(); } switch(desktop_environment) { case VNR_PREFS_DESKTOP_GNOME2: execlp("gconftool-2", "gconftool-2", "--set", "/desktop/gnome/background/picture_filename", "--type", "string", VNR_FILE(win->file_list->data)->path, NULL); break; case VNR_PREFS_DESKTOP_MATE: execlp("gsettings", "gsettings", "set", "org.mate.background", "picture-filename", VNR_FILE(win->file_list->data)->path, NULL); break; case VNR_PREFS_DESKTOP_GNOME3: tmp = g_strdup_printf("file://%s", VNR_FILE(win->file_list->data)->path); execlp("gsettings", "gsettings", "set", "org.gnome.desktop.background", "picture-uri", tmp, NULL); break; case VNR_PREFS_DESKTOP_XFCE: tmp = g_strdup_printf("/backdrop/screen%d/monitor0/workspace0/last-image", gdk_screen_get_number(gtk_widget_get_screen(GTK_WIDGET(win)))); execlp("xfconf-query", "xfconf-query", "-c", "xfce4-desktop", "-p", tmp, "--type", "string", "--set", VNR_FILE(win->file_list->data)->path, NULL); break; case VNR_PREFS_DESKTOP_LXDE: execlp("pcmanfm", "pcmanfm", "--set-wallpaper", VNR_FILE(win->file_list->data)->path, NULL); break; case VNR_PREFS_DESKTOP_PUPPY: execlp("set_bg", "set_bg", VNR_FILE(win->file_list->data)->path, NULL); break; case VNR_PREFS_DESKTOP_FLUXBOX: execlp("fbsetbg", "fbsetbg", "-f", VNR_FILE(win->file_list->data)->path, NULL); break; case VNR_PREFS_DESKTOP_NITROGEN: execlp("nitrogen", "nitrogen", "--set-zoom-fill", "--save", VNR_FILE(win->file_list->data)->path, NULL); break; case VNR_PREFS_DESKTOP_CINNAMON: tmp = g_strdup_printf("file://%s", VNR_FILE(win->file_list->data)->path); execlp("gsettings", "gsettings", "set", "org.cinnamon.desktop.background", "picture-uri", tmp, NULL); break; default: _exit(0); } } else { wait(NULL); } } static void vnr_window_cmd_fullscreen (GtkAction *action, VnrWindow *window) { gboolean fullscreen = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); if (fullscreen) vnr_window_fullscreen (window); else vnr_window_unfullscreen (window); } static void vnr_window_cmd_menu_bar (GtkAction *action, VnrWindow *window) { gboolean show = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); vnr_prefs_set_show_menu_bar(window->prefs, show); if (window->mode != VNR_WINDOW_MODE_NORMAL) return; if (show) { gtk_widget_show (window->menu_bar); gtk_widget_hide (window->properties_button); } else { gtk_widget_hide (window->menu_bar); gtk_widget_show (window->properties_button); } } static void vnr_window_cmd_toolbar (GtkAction *action, VnrWindow *window) { gboolean show = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); vnr_prefs_set_show_toolbar(window->prefs, show); if (show) gtk_widget_show (window->toolbar); else gtk_widget_hide (window->toolbar); } static void vnr_window_cmd_scrollbar (GtkAction *action, VnrWindow *window) { gboolean show = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); vnr_prefs_set_show_scrollbar (window->prefs, show); uni_scroll_win_set_show_scrollbar (UNI_SCROLL_WIN (window->scroll_view), show); } static void vnr_window_cmd_statusbar (GtkAction *action, VnrWindow *window) { gboolean show = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); vnr_prefs_set_show_statusbar(window->prefs, show); if (show) gtk_widget_show (window->statusbar); else gtk_widget_hide (window->statusbar); } static void vnr_window_cmd_slideshow (GtkAction *action, VnrWindow *window) { g_assert(window != NULL && VNR_IS_WINDOW(window)); if(!window->slideshow) return; gboolean slideshow; slideshow = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); if (slideshow && window->mode != VNR_WINDOW_MODE_SLIDESHOW) { /* ! Uncomment to force Fullscreen along with Slideshow */ if(window->mode == VNR_WINDOW_MODE_NORMAL) { vnr_window_fullscreen (window); } start_slideshow(window); } else if(window->mode == VNR_WINDOW_MODE_SLIDESHOW) { /* ! Uncomment to force Fullscreen along with Slideshow */ vnr_window_unfullscreen (window); stop_slideshow(window); } } static void vnr_window_cmd_delete(GtkAction *action, VnrWindow *window) { GtkWidget *dlg = NULL; const gchar *file_path; gchar *markup, *prompt, *warning; gboolean restart_slideshow = FALSE; gboolean restart_autohide_timeout = FALSE; gboolean cursor_was_hidden = FALSE; /* Used to get rid of the "may be used uninitialised" warning */ markup = prompt = warning = NULL; if(window->mode == VNR_WINDOW_MODE_SLIDESHOW) { stop_slideshow(window); restart_slideshow = TRUE; } if(window->cursor_is_hidden) { cursor_was_hidden = TRUE; vnr_window_show_cursor(window); } window->disable_autohide = TRUE; if(window->fs_source != NULL) restart_autohide_timeout = TRUE; g_return_if_fail (window->file_list != NULL); file_path = VNR_FILE(window->file_list->data)->path; if(window->prefs->confirm_delete) { warning = _("If you delete an item, it will be permanently lost."); /* I18N: The '%s' is replaced with the name of the file to be deleted. */ prompt = g_strdup_printf (_("Are you sure you want to\n" "permanently delete \"%s\"?"), VNR_FILE(window->file_list->data)->display_name); markup = g_markup_printf_escaped ("%s\n\n%s", prompt, warning); dlg = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, NULL); gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (dlg), markup); gtk_dialog_add_buttons (GTK_DIALOG (dlg), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_DELETE, GTK_RESPONSE_YES, NULL); } if(!window->prefs->confirm_delete || gtk_dialog_run(GTK_DIALOG(dlg)) == GTK_RESPONSE_YES ) { GFile *file; GError *error = NULL; file = g_file_new_for_path(file_path); g_file_delete(file, NULL, &error); if( error != NULL ) { vnr_message_area_show(VNR_MESSAGE_AREA (window->msg_area), TRUE, error->message, FALSE); restart_slideshow = FALSE; } else { GList *next; next = g_list_next(window->file_list); if(next == NULL) next = g_list_first(window->file_list); if(g_list_length(g_list_first(window->file_list)) != 1) window->file_list = g_list_delete_link (window->file_list, window->file_list); else { g_list_free(window->file_list); next = NULL; } if(next == NULL) { vnr_window_close(window); gtk_action_group_set_sensitive(window->actions_collection, FALSE); deny_slideshow(window); vnr_window_set_list(window, NULL, FALSE); vnr_message_area_show(VNR_MESSAGE_AREA (window->msg_area), TRUE, _("The given locations contain no images."), TRUE); restart_slideshow = FALSE; if(gtk_widget_get_visible(window->props_dlg)) vnr_properties_dialog_clear(VNR_PROPERTIES_DIALOG(window->props_dlg)); } else { vnr_window_set_list(window, next, FALSE); if(window->prefs->confirm_delete && !window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(dlg)), gdk_cursor_new(GDK_WATCH)); gdk_flush(); vnr_window_close(window); vnr_window_open(window, FALSE); if(window->prefs->confirm_delete && !window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(dlg)), gdk_cursor_new(GDK_LEFT_PTR)); } } } window->disable_autohide = FALSE; if(restart_slideshow) start_slideshow(window); if(cursor_was_hidden) vnr_window_hide_cursor(window); if(restart_autohide_timeout) fullscreen_set_timeout(window); if(window->prefs->confirm_delete) { g_free(prompt); g_free(markup); gtk_widget_destroy( dlg ); } } static void vnr_window_cmd_crop(GtkAction *action, VnrWindow *window) { VnrCrop *crop; if ( !gtk_action_group_get_sensitive(window->actions_static_image) ) return; crop = (VnrCrop*) vnr_crop_new (window); if(! vnr_crop_run(crop)) { g_object_unref(crop); return; } GdkPixbuf *cropped; GdkPixbuf *original; original = uni_image_view_get_pixbuf(UNI_IMAGE_VIEW(window->view)); cropped = gdk_pixbuf_new (gdk_pixbuf_get_colorspace (original), gdk_pixbuf_get_has_alpha (original), gdk_pixbuf_get_bits_per_sample (original), crop->area.width, crop->area.height); gdk_pixbuf_copy_area((const GdkPixbuf*)original, crop->area.x, crop->area.y, crop->area.width, crop->area.height, cropped, 0, 0); uni_anim_view_set_static(UNI_ANIM_VIEW(window->view), cropped); g_object_unref(cropped); window->modifications |= 8; window->current_image_width = crop->area.width; window->current_image_height = crop->area.height; gtk_action_group_set_sensitive(window->action_save, TRUE); if(window->writable_format_name == NULL) vnr_message_area_show(VNR_MESSAGE_AREA(window->msg_area), TRUE, _("Image modifications cannot be saved.\nWriting in this format is not supported."), FALSE); else if(window->prefs->behavior_modify == VNR_PREFS_MODIFY_SAVE) save_image_cb(NULL, window); else if(window->prefs->behavior_modify == VNR_PREFS_MODIFY_ASK) vnr_message_area_show_with_button(VNR_MESSAGE_AREA(window->msg_area), FALSE, _("Save modifications?\nThis will overwrite the image and may reduce its quality!"), FALSE, GTK_STOCK_SAVE, G_CALLBACK(save_image_cb)); g_object_unref(crop); } static const GtkActionEntry action_entries_window[] = { { "File", NULL, N_("_File") }, { "Edit", NULL, N_("_Edit") }, { "View", NULL, N_("_View") }, { "Image", NULL, N_("_Image") }, { "Go", NULL, N_("_Go") }, { "Help", NULL, N_("_Help") }, { "FileOpen", GTK_STOCK_FILE, N_("Open _Image..."), "O", N_("Open an Image"), G_CALLBACK (vnr_window_cmd_open) }, { "FileOpenDir", GTK_STOCK_DIRECTORY, N_("Open _Folder..."), "F", N_("Open a Folder"), G_CALLBACK (vnr_window_cmd_open_dir) }, { "FileClose", GTK_STOCK_CLOSE, N_("_Close"), "W", N_("Close window"), G_CALLBACK (gtk_main_quit) }, { "HelpAbout", GTK_STOCK_ABOUT, N_("_About"), NULL, N_("About this application"), G_CALLBACK (vnr_window_cmd_about) }, { "EditPreferences", GTK_STOCK_PREFERENCES, N_("_Preferences..."), NULL, N_("User preferences for Viewnior"), G_CALLBACK (vnr_window_cmd_preferences) } }; static const GtkActionEntry action_entry_save[] = { { "FileSave", GTK_STOCK_SAVE, N_("_Save"), "S", N_("Save changes"), G_CALLBACK (save_image_cb) }, }; static const GtkToggleActionEntry toggle_entry_properties[] = { { "Properties", GTK_STOCK_PROPERTIES, N_("_Properties"), NULL, N_("Properties"), G_CALLBACK (vnr_window_cmd_open_menu) }, }; static const GtkActionEntry action_entry_wallpaper[] = { { "SetAsWallpaper", NULL, N_("Set as _Wallpaper"), "F8", N_("Set the selected image as the desktop background"), G_CALLBACK (vnr_set_wallpaper) }, }; static const GtkActionEntry action_entries_image[] = { { "FileOpenWith", NULL, N_("Open _With"), NULL, N_("Open the selected image with a different application"), NULL}, { "FileDelete", GTK_STOCK_DELETE, N_("_Delete"), NULL, N_("Delete the current file"), G_CALLBACK (vnr_window_cmd_delete) }, { "FileProperties", GTK_STOCK_PROPERTIES, N_("_Properties..."), "Return", N_("Show information about the current file"), G_CALLBACK (vnr_window_cmd_properties) }, { "FileReload", GTK_STOCK_REFRESH, N_("_Reload"), NULL, N_("Reload the current file"), G_CALLBACK (vnr_window_cmd_reload) }, { "Delete", NULL, N_("_Delete"), "Delete", N_("Delete the current file"), G_CALLBACK (vnr_window_cmd_delete) }, { "ViewZoomIn", GTK_STOCK_ZOOM_IN, N_("_Zoom In"), "plus", N_("Enlarge the image"), G_CALLBACK (vnr_window_cmd_zoom_in) }, { "ViewZoomOut", GTK_STOCK_ZOOM_OUT, N_("Zoom _Out"), "minus", N_("Shrink the image"), G_CALLBACK (vnr_window_cmd_zoom_out) }, { "ViewZoomNormal", GTK_STOCK_ZOOM_100, N_("_Normal Size"), "0", N_("Show the image at its normal size"), G_CALLBACK (vnr_window_cmd_normal_size) }, { "ViewZoomFit", GTK_STOCK_ZOOM_FIT, N_("Best _Fit"), NULL, N_("Fit the image to the window"), G_CALLBACK (vnr_window_cmd_fit) }, { "ControlEqual", GTK_STOCK_ZOOM_IN, N_("_Zoom In"), "equal", N_("Shrink the image"), G_CALLBACK (vnr_window_cmd_zoom_in) }, { "ControlKpAdd", GTK_STOCK_ZOOM_IN, N_("_Zoom In"), "KP_Add", N_("Shrink the image"), G_CALLBACK (vnr_window_cmd_zoom_in) }, { "ControlKpSub", GTK_STOCK_ZOOM_OUT, N_("Zoom _Out"), "KP_Subtract", N_("Shrink the image"), G_CALLBACK (vnr_window_cmd_zoom_out) }, }; static const GtkActionEntry action_entries_static_image[] = { { "ImageRotateCW", "object-rotate-right", N_("Rotate _Clockwise"), "R", N_("Rotate image clockwise"), G_CALLBACK (vnr_window_cmd_rotate_cw) }, { "ImageRotateCCW", "object-rotate-left", N_("Rotate _Anti-clockwise"), "R", N_("Rotate image anti-clockwise"), G_CALLBACK (vnr_window_cmd_rotate_ccw) }, { "ImageFlipVertical", "object-flip-vertical", N_("Flip _Vertical"), NULL, N_("Flip image vertically"), G_CALLBACK (vnr_window_cmd_flip_vertical) }, { "ImageFlipHorizontal", "object-flip-horizontal", N_("Flip _Horizontal"), NULL, N_("Flip image horizontally"), G_CALLBACK (vnr_window_cmd_flip_horizontal) }, { "ImageCrop", NULL, N_("Crop..."), NULL, N_("Crop"), G_CALLBACK (vnr_window_cmd_crop) }, }; static const GtkToggleActionEntry toggle_entries_image[] = { { "ViewFullscreen", GTK_STOCK_FULLSCREEN, N_("Full _Screen"), "F11", N_("Show in fullscreen mode"), G_CALLBACK (vnr_window_cmd_fullscreen) }, { "ViewResizeWindow", NULL, N_("_Adjust window size"), NULL, N_("Adjust window size to fit the image"), G_CALLBACK (vnr_window_cmd_resize) }, }; static const GtkToggleActionEntry toggle_entries_window[] = { { "ViewMenuBar", NULL, N_("Menu Bar"), NULL, N_("Show Menu Bar"), G_CALLBACK (vnr_window_cmd_menu_bar) }, { "ViewToolbar", NULL, N_("Toolbar"), NULL, N_("Show Toolbar"), G_CALLBACK (vnr_window_cmd_toolbar) }, { "ViewScrollbar", NULL, N_("Scrollbar"), NULL, N_("Show Scrollbar"), G_CALLBACK (vnr_window_cmd_scrollbar) }, { "ViewStatusbar", NULL, N_("Statusbar"), NULL, N_("Show Statusbar"), G_CALLBACK (vnr_window_cmd_statusbar) }, }; static const GtkToggleActionEntry toggle_entries_collection[] = { { "ViewSlideshow", GTK_STOCK_NETWORK, N_("Sli_deshow"), "F5", N_("Show in slideshow mode"), G_CALLBACK (vnr_window_cmd_slideshow) }, }; static const GtkActionEntry action_entries_collection[] = { { "GoPrevious", GTK_STOCK_GO_BACK, N_("_Previous Image"), "Left", N_("Go to the previous image of the collection"), G_CALLBACK (vnr_window_cmd_prev) }, { "GoNext", GTK_STOCK_GO_FORWARD, N_("_Next Image"), "Right", N_("Go to the next image of the collection"), G_CALLBACK (vnr_window_cmd_next) }, { "GoFirst", GTK_STOCK_GOTO_FIRST, N_("_First Image"), "Home", N_("Go to the first image of the collection"), G_CALLBACK (vnr_window_cmd_first) }, { "GoLast", GTK_STOCK_GOTO_LAST, N_("_Last Image"), "End", N_("Go to the last image of the collection"), G_CALLBACK (vnr_window_cmd_last) }, }; /*************************************************************/ /***** Stuff that deals with the type ************************/ /*************************************************************/ /* Modified version of eog's eog_window_key_press */ static gint vnr_window_key_press (GtkWidget *widget, GdkEventKey *event) { gint result = FALSE; VnrWindow *window = VNR_WINDOW(widget); GtkWidget *toolbar_focus_child; GtkWidget *msg_area_focus_child; toolbar_focus_child = gtk_container_get_focus_child(GTK_CONTAINER(window->toolbar)); msg_area_focus_child = gtk_container_get_focus_child(GTK_CONTAINER(window->msg_area)); switch(event->keyval){ case GDK_KEY_Left: if (event->state & GDK_MOD1_MASK) { vnr_window_cmd_prev (NULL, window); result = TRUE; break; } /* else fall-trough is intended */ case GDK_KEY_Up: if (!uni_scroll_win_image_fits (UNI_SCROLL_WIN (window->scroll_view))) { /* break to let scrollview handle the key */ break; } if (toolbar_focus_child != NULL || msg_area_focus_child != NULL) break; vnr_window_cmd_prev (NULL, window); result = TRUE; break; case GDK_KEY_Right: if (event->state & GDK_MOD1_MASK) { vnr_window_cmd_next (NULL, window); result = TRUE; break; } /* else fall-trough is intended */ case GDK_KEY_Down: if (!uni_scroll_win_image_fits (UNI_SCROLL_WIN (window->scroll_view))) { /* break to let scrollview handle the key */ break; } if (toolbar_focus_child != NULL || msg_area_focus_child != NULL) break; vnr_window_cmd_next (NULL, window); result = TRUE; break; case GDK_KEY_Page_Up: vnr_window_cmd_prev (NULL, window); result = TRUE; break; case GDK_KEY_Page_Down: vnr_window_cmd_next (NULL, window); result = TRUE; break; case GDK_KEY_Escape: case 'q': if(window->mode != VNR_WINDOW_MODE_NORMAL) vnr_window_unfullscreen(window); else gtk_main_quit(); break; case GDK_KEY_space: if (toolbar_focus_child != NULL || msg_area_focus_child != NULL) break; vnr_window_next(window, TRUE); result = TRUE; break; case GDK_KEY_BackSpace: vnr_window_prev(window); result = TRUE; break; case GDK_KEY_Home: vnr_window_first(window); result = TRUE; break; case GDK_KEY_End: vnr_window_last(window); result = TRUE; break; case 'h': vnr_window_cmd_flip_horizontal(NULL, window); break; case 'v': vnr_window_cmd_flip_vertical(NULL, window); break; case 'c': vnr_window_cmd_crop(NULL, window); break; } if (result == FALSE && GTK_WIDGET_CLASS (vnr_window_parent_class)->key_press_event) result = (* GTK_WIDGET_CLASS (vnr_window_parent_class)->key_press_event) (widget, event); return result; } static void vnr_window_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint time) { GSList *uri_list = NULL; GdkAtom target = gtk_selection_data_get_target (selection_data); GdkDragAction suggested_action; if (!gtk_targets_include_uri (&target, 1)) return; if (gtk_drag_get_source_widget (context)) return; suggested_action = gdk_drag_context_get_suggested_action (context); if (suggested_action == GDK_ACTION_COPY || suggested_action == GDK_ACTION_ASK) { const guchar *data = gtk_selection_data_get_data (selection_data); uri_list = vnr_tools_parse_uri_string_list_to_file_list ((gchar *) data); if(uri_list == NULL) { vnr_window_close(VNR_WINDOW (widget)); gtk_action_group_set_sensitive(VNR_WINDOW (widget)->actions_collection, FALSE); deny_slideshow(VNR_WINDOW (widget)); vnr_message_area_show(VNR_MESSAGE_AREA (VNR_WINDOW (widget)->msg_area), TRUE, _("The given locations contain no images."), TRUE); return; } vnr_window_open_from_list(VNR_WINDOW (widget), uri_list); } } static void vnr_window_class_init (VnrWindowClass * klass) { GtkWidgetClass *widget_class = (GtkWidgetClass *) klass; widget_class->key_press_event = vnr_window_key_press; widget_class->drag_data_received = vnr_window_drag_data_received; } GtkWindow * vnr_window_new () { return (GtkWindow *) g_object_new (VNR_TYPE_WINDOW, NULL); } static void vnr_window_init (VnrWindow * window) { GError *error = NULL; GtkAction *action; window->writable_format_name = NULL; window->file_list = NULL; window->fs_controls = NULL; window->fs_source = NULL; window->ss_timeout = 5; window->slideshow = TRUE; window->cursor_is_hidden = FALSE; window->disable_autohide = FALSE; window->actions_open_with = NULL; window->open_with_menu_id = 0; window->prefs = (VnrPrefs*)vnr_prefs_new (GTK_WIDGET(window)); window->mode = VNR_WINDOW_MODE_NORMAL; gtk_window_set_title ((GtkWindow *) window, "Viewnior"); gtk_window_set_default_icon_name ("viewnior"); /* Build MENUBAR and TOOLBAR */ window->ui_mngr = gtk_ui_manager_new(); window->actions_window = gtk_action_group_new("MenuActionsWindow"); gtk_action_group_set_translation_domain (window->actions_window, GETTEXT_PACKAGE); gtk_action_group_add_actions (window->actions_window, action_entries_window, G_N_ELEMENTS (action_entries_window), window); gtk_ui_manager_insert_action_group (window->ui_mngr, window->actions_window, 0); window->action_save = gtk_action_group_new("MenuActionSave"); gtk_action_group_set_translation_domain (window->action_save, GETTEXT_PACKAGE); gtk_action_group_add_actions (window->action_save, action_entry_save, G_N_ELEMENTS (action_entry_save), window); gtk_ui_manager_insert_action_group (window->ui_mngr, window->action_save, 0); window->action_properties = gtk_action_group_new("MenuActionProperties"); gtk_action_group_set_translation_domain (window->action_properties, GETTEXT_PACKAGE); gtk_action_group_add_toggle_actions (window->action_properties, toggle_entry_properties, G_N_ELEMENTS (toggle_entry_properties), window); gtk_ui_manager_insert_action_group (window->ui_mngr, window->action_properties, 0); window->actions_static_image = gtk_action_group_new("MenuActionsStaticImage"); gtk_action_group_set_translation_domain (window->actions_static_image, GETTEXT_PACKAGE); gtk_action_group_add_actions (window->actions_static_image, action_entries_static_image, G_N_ELEMENTS (action_entries_static_image), window); gtk_ui_manager_insert_action_group (window->ui_mngr, window->actions_static_image, 0); window->actions_image = gtk_action_group_new("MenuActionsImage"); gtk_action_group_set_translation_domain (window->actions_image, GETTEXT_PACKAGE); gtk_action_group_add_actions (window->actions_image, action_entries_image, G_N_ELEMENTS (action_entries_image), window); gtk_action_group_add_toggle_actions (window->actions_image, toggle_entries_image, G_N_ELEMENTS (toggle_entries_image), window); gtk_ui_manager_insert_action_group (window->ui_mngr, window->actions_image, 0); /**********/ window->actions_bars = gtk_action_group_new("MenuActionsBars"); gtk_action_group_set_translation_domain (window->actions_bars, GETTEXT_PACKAGE); gtk_action_group_add_toggle_actions (window->actions_bars, toggle_entries_window, G_N_ELEMENTS (toggle_entries_window), window); gtk_ui_manager_insert_action_group (window->ui_mngr, window->actions_bars, 0); /*****************/ window->actions_collection = gtk_action_group_new("MenuActionsCollection"); gtk_action_group_set_translation_domain (window->actions_collection, GETTEXT_PACKAGE); gtk_action_group_add_actions (window->actions_collection, action_entries_collection, G_N_ELEMENTS (action_entries_collection), window); gtk_action_group_add_toggle_actions (window->actions_collection, toggle_entries_collection, G_N_ELEMENTS (toggle_entries_collection), window); gtk_ui_manager_insert_action_group (window->ui_mngr, window->actions_collection, 0); if (!gtk_ui_manager_add_ui_from_string (window->ui_mngr, ui_definition, -1, &error)) { g_error ("building menus failed: %s\n", error->message); g_error_free (error); } window->action_wallpaper = gtk_action_group_new("ActionWallpaper"); gtk_action_group_set_translation_domain (window->action_wallpaper, GETTEXT_PACKAGE); gtk_action_group_add_actions (window->action_wallpaper, action_entry_wallpaper, G_N_ELEMENTS (action_entry_wallpaper), window); gtk_ui_manager_insert_action_group (window->ui_mngr, window->action_wallpaper, 0); if (!gtk_ui_manager_add_ui_from_string (window->ui_mngr, ui_definition_wallpaper, -1, &error)) { g_error ("building menus failed: %s\n", error->message); g_error_free (error); } gtk_action_group_set_sensitive(window->action_wallpaper, FALSE); gtk_action_group_set_sensitive(window->actions_collection, FALSE); gtk_action_group_set_sensitive(window->actions_image, FALSE); gtk_action_group_set_sensitive(window->actions_static_image, FALSE); gtk_action_group_set_sensitive(window->action_save, FALSE); gtk_action_group_set_sensitive(window->actions_bars, TRUE); /* Continue with layout */ window->layout = gtk_vbox_new(FALSE,0); gtk_container_add (GTK_CONTAINER (window), window->layout); gtk_widget_show(window->layout); window->menus = gtk_vbox_new(FALSE,0); gtk_box_pack_start (GTK_BOX (window->layout), window->menus, FALSE,FALSE,0); window->menu_bar = gtk_ui_manager_get_widget (window->ui_mngr, "/MainMenu"); g_assert(GTK_IS_WIDGET(window->menu_bar)); gtk_box_pack_start (GTK_BOX (window->menus), window->menu_bar, FALSE,FALSE,0); window->properties_button = gtk_ui_manager_get_widget (window->ui_mngr, "/Toolbar/Properties"); g_assert(GTK_IS_WIDGET(window->properties_button)); window->button_menu = gtk_ui_manager_get_widget (window->ui_mngr, "/ButtonMenu"); g_assert(GTK_IS_WIDGET(window->button_menu)); gtk_menu_attach_to_widget (GTK_MENU(window->button_menu), GTK_WIDGET(window->properties_button), NULL); window->toolbar = gtk_ui_manager_get_widget (window->ui_mngr, "/Toolbar"); g_assert(GTK_IS_WIDGET(window->toolbar)); gtk_toolbar_set_style(GTK_TOOLBAR(window->toolbar), GTK_TOOLBAR_ICONS); g_object_set(G_OBJECT(window->toolbar), "show-arrow", FALSE, NULL); gtk_toolbar_insert (GTK_TOOLBAR (window->toolbar), GTK_TOOL_ITEM(get_fs_controls(window)), -1); gtk_box_pack_start (GTK_BOX (window->menus), window->toolbar, FALSE,FALSE,0); window->popup_menu = gtk_ui_manager_get_widget (window->ui_mngr, "/PopupMenu"); g_assert(GTK_IS_WIDGET(window->popup_menu)); gtk_ui_manager_ensure_update (window->ui_mngr); gtk_widget_show_all(window->menus); gtk_widget_hide(get_fs_controls(window)); // Apply menu bar preference action = gtk_action_group_get_action (window->actions_bars, "ViewMenuBar"); if(!window->prefs->show_menu_bar) gtk_widget_hide (window->menu_bar); else gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE); // Apply toolbar preference action = gtk_action_group_get_action (window->actions_bars, "ViewToolbar"); if(!window->prefs->show_toolbar) gtk_widget_hide (window->toolbar); else gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE); // Apply auto-resize preference action = gtk_action_group_get_action (window->actions_image, "ViewResizeWindow"); if(window->prefs->auto_resize) gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE); window->msg_area = vnr_message_area_new(); VNR_MESSAGE_AREA(window->msg_area)->vnr_win = window; gtk_box_pack_start (GTK_BOX (window->layout), window->msg_area, FALSE,FALSE,0); gtk_widget_show(GTK_WIDGET (window->msg_area)); window->view = uni_anim_view_new (); gtk_widget_set_can_focus(window->view, TRUE); window->scroll_view = uni_scroll_win_new (UNI_IMAGE_VIEW (window->view)); window->statusbar = gtk_statusbar_new(); gtk_statusbar_set_has_resize_grip(GTK_STATUSBAR(window->statusbar), FALSE); gtk_box_pack_end (GTK_BOX (window->layout), window->statusbar, FALSE,FALSE,0); // Apply statusbar preference action = gtk_action_group_get_action (window->actions_bars, "ViewStatusbar"); if(!window->prefs->show_statusbar) gtk_widget_hide (window->statusbar); else gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE); // Apply scrollbar preference action = gtk_action_group_get_action (window->actions_bars, "ViewScrollbar"); uni_scroll_win_set_show_scrollbar (UNI_SCROLL_WIN (window->scroll_view), window->prefs->show_scrollbar); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), window->prefs->show_scrollbar); gtk_box_pack_end (GTK_BOX (window->layout), window->scroll_view, TRUE,TRUE,0); gtk_widget_show_all(GTK_WIDGET (window->scroll_view)); gtk_widget_grab_focus(window->view); // Initialize slideshow timeout window->ss_timeout = window->prefs->slideshow_timeout; /* Care for Properties dialog */ window->props_dlg = vnr_properties_dialog_new(window, gtk_action_group_get_action (window->actions_collection, "GoNext"), gtk_action_group_get_action (window->actions_collection, "GoPrevious")); vnr_window_apply_preferences(window); vnr_window_set_drag(window); g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (window_destroy_cb), NULL); g_signal_connect (G_OBJECT (window), "realize", G_CALLBACK (window_realize_cb), NULL); g_signal_connect (G_OBJECT (window), "window-state-event", G_CALLBACK (window_change_state_cb), NULL); g_signal_connect (G_OBJECT (window->view), "zoom_changed", G_CALLBACK (zoom_changed_cb), window); g_signal_connect (G_OBJECT (window->view), "drag-data-get", G_CALLBACK (window_drag_begin_cb), window); g_signal_connect (G_OBJECT (window->button_menu), "hide", G_CALLBACK(vnr_window_cmd_main_menu_hidden), window); gtk_window_add_accel_group (GTK_WINDOW (window), gtk_ui_manager_get_accel_group (window->ui_mngr)); vnr_window_load_accel_map(); } /*************************************************************/ /***** Actions ***********************************************/ /*************************************************************/ gboolean vnr_window_open (VnrWindow * window, gboolean fit_to_screen) { VnrFile *file; GdkPixbufAnimation *pixbuf; GdkPixbufFormat *format; UniFittingMode last_fit_mode; GError *error = NULL; if(window->file_list == NULL) return FALSE; file = VNR_FILE(window->file_list->data); update_fs_filename_label(window); pixbuf = gdk_pixbuf_animation_new_from_file (file->path, &error); if (error != NULL) { vnr_message_area_show(VNR_MESSAGE_AREA (window->msg_area), TRUE, error->message, TRUE); if(gtk_widget_get_visible(window->props_dlg)) vnr_properties_dialog_clear(VNR_PROPERTIES_DIALOG(window->props_dlg)); return FALSE; } if(vnr_message_area_is_visible(VNR_MESSAGE_AREA(window->msg_area))) { vnr_message_area_hide(VNR_MESSAGE_AREA(window->msg_area)); } gtk_action_group_set_sensitive(window->actions_image, TRUE); gtk_action_group_set_sensitive(window->action_wallpaper, TRUE); format = gdk_pixbuf_get_file_info (file->path, NULL, NULL); g_free(window->writable_format_name); if(gdk_pixbuf_format_is_writable (format)) window->writable_format_name = gdk_pixbuf_format_get_name (format); else window->writable_format_name = NULL; vnr_tools_apply_embedded_orientation (&pixbuf); window->current_image_width = gdk_pixbuf_animation_get_width (pixbuf); window->current_image_height = gdk_pixbuf_animation_get_height (pixbuf); window->modifications = 0; if(fit_to_screen) { gint img_h, img_w; /* Width and Height of the pixbuf */ img_w = window->current_image_width; img_h = window->current_image_height; vnr_tools_fit_to_size (&img_w, &img_h, window->max_width, window->max_height); gtk_window_resize (GTK_WINDOW (window), img_w, img_h + get_top_widgets_height(window)); } last_fit_mode = UNI_IMAGE_VIEW(window->view)->fitting; /* Return TRUE if the image is static */ if ( uni_anim_view_set_anim (UNI_ANIM_VIEW (window->view), pixbuf) ) gtk_action_group_set_sensitive(window->actions_static_image, TRUE); else gtk_action_group_set_sensitive(window->actions_static_image, FALSE); if(window->mode != VNR_WINDOW_MODE_NORMAL && window->prefs->fit_on_fullscreen) { uni_image_view_set_zoom_mode (UNI_IMAGE_VIEW(window->view), VNR_PREFS_ZOOM_FIT); } else if(window->prefs->zoom == VNR_PREFS_ZOOM_LAST_USED ) { uni_image_view_set_fitting (UNI_IMAGE_VIEW(window->view), last_fit_mode); zoom_changed_cb(UNI_IMAGE_VIEW(window->view), window); } else { uni_image_view_set_zoom_mode (UNI_IMAGE_VIEW(window->view), window->prefs->zoom); } if ( window->prefs->auto_resize ) { vnr_window_cmd_resize(NULL, window); } if(gtk_widget_get_visible(window->props_dlg)) vnr_properties_dialog_update(VNR_PROPERTIES_DIALOG(window->props_dlg)); vnr_window_update_openwith_menu (window); g_object_unref(pixbuf); return TRUE; } void vnr_window_open_from_list(VnrWindow *window, GSList *uri_list) { GList *file_list = NULL; GError *error = NULL; if (g_slist_length(uri_list) == 1) { vnr_file_load_single_uri (uri_list->data, &file_list, window->prefs->show_hidden, &error); } else { vnr_file_load_uri_list (uri_list, &file_list, window->prefs->show_hidden, &error); } if(error != NULL && file_list != NULL) { vnr_window_close(window); gtk_action_group_set_sensitive(window->actions_collection, FALSE); deny_slideshow(window); vnr_message_area_show(VNR_MESSAGE_AREA (window->msg_area), TRUE, error->message, TRUE); vnr_window_set_list(window, file_list, TRUE); } else if(error != NULL) { vnr_window_close(window); deny_slideshow(window); vnr_message_area_show(VNR_MESSAGE_AREA (window->msg_area), TRUE, error->message, TRUE); } else if(file_list == NULL) { vnr_window_close(window); gtk_action_group_set_sensitive(window->actions_collection, FALSE); deny_slideshow(window); vnr_message_area_show(VNR_MESSAGE_AREA (window->msg_area), TRUE, _("The given locations contain no images."), TRUE); } else { vnr_window_set_list(window, file_list, TRUE); if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_WATCH)); /* This makes the cursor show NOW */ gdk_flush(); vnr_window_close(window); vnr_window_open(window, FALSE); if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_LEFT_PTR)); } } void vnr_window_close(VnrWindow *window) { gtk_window_set_title (GTK_WINDOW (window), "Viewnior"); uni_anim_view_set_anim (UNI_ANIM_VIEW (window->view), NULL); gtk_action_group_set_sensitive(window->actions_image, FALSE); gtk_action_group_set_sensitive(window->action_wallpaper, FALSE); gtk_action_group_set_sensitive(window->actions_static_image, FALSE); } void vnr_window_set_list (VnrWindow *window, GList *list, gboolean free_current) { if (free_current == TRUE && window->file_list != NULL) g_list_free (window->file_list); if (g_list_length(g_list_first(list)) > 1) { gtk_action_group_set_sensitive(window->actions_collection, TRUE); allow_slideshow(window); } else { gtk_action_group_set_sensitive(window->actions_collection, FALSE); deny_slideshow(window); } window->file_list = list; } gboolean vnr_window_next (VnrWindow *window, gboolean rem_timeout){ GList *next; /* Don't reload current image * if the list contains only one (or no) image */ if (g_list_length(g_list_first(window->file_list)) <2) return FALSE; if(window->mode == VNR_WINDOW_MODE_SLIDESHOW && rem_timeout) g_source_remove (window->ss_source_tag); next = g_list_next(window->file_list); if(next == NULL) { next = g_list_first(window->file_list); } window->file_list = next; if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_WATCH)); /* This makes the cursor show NOW */ gdk_flush(); vnr_window_open(window, FALSE); if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_LEFT_PTR)); if(window->mode == VNR_WINDOW_MODE_SLIDESHOW && rem_timeout) window->ss_source_tag = g_timeout_add_seconds (window->ss_timeout, (GSourceFunc)next_image_src, window); return TRUE; } gboolean vnr_window_prev (VnrWindow *window){ GList *prev; /* Don't reload current image * if the list contains only one (or no) image */ if (g_list_length(g_list_first(window->file_list)) <2) return FALSE; if(window->mode == VNR_WINDOW_MODE_SLIDESHOW) g_source_remove (window->ss_source_tag); prev = g_list_previous(window->file_list); if(prev == NULL) { prev = g_list_last(window->file_list); } window->file_list = prev; if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_WATCH)); /* This makes the cursor show NOW */ gdk_flush(); vnr_window_open(window, FALSE); if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_LEFT_PTR)); if(window->mode == VNR_WINDOW_MODE_SLIDESHOW) window->ss_source_tag = g_timeout_add_seconds (window->ss_timeout, (GSourceFunc)next_image_src, window); return TRUE; } gboolean vnr_window_first (VnrWindow *window){ GList *prev; prev = g_list_first(window->file_list); if(vnr_message_area_is_critical(VNR_MESSAGE_AREA(window->msg_area))) { vnr_message_area_hide(VNR_MESSAGE_AREA(window->msg_area)); } window->file_list = prev; if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_WATCH)); /* This makes the cursor show NOW */ gdk_flush(); vnr_window_open(window, FALSE); if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_LEFT_PTR)); return TRUE; } gboolean vnr_window_last (VnrWindow *window){ GList *prev; prev = g_list_last(window->file_list); if(vnr_message_area_is_critical(VNR_MESSAGE_AREA(window->msg_area))) { vnr_message_area_hide(VNR_MESSAGE_AREA(window->msg_area)); } window->file_list = prev; if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_WATCH)); /* This makes the cursor show NOW */ gdk_flush(); vnr_window_open(window, FALSE); if(!window->cursor_is_hidden) gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), gdk_cursor_new(GDK_LEFT_PTR)); return TRUE; } void vnr_window_apply_preferences (VnrWindow *window) { if ( window->prefs->dark_background ) { GdkColor color; gdk_color_parse(DARK_BACKGROUND_COLOR, &color); gtk_widget_modify_bg(window->view, GTK_STATE_NORMAL, &color); } if(window->prefs->smooth_images && UNI_IMAGE_VIEW(window->view)->interp != GDK_INTERP_BILINEAR) { UNI_IMAGE_VIEW(window->view)->interp = GDK_INTERP_BILINEAR; gtk_widget_queue_draw(window->view); } else if(!window->prefs->smooth_images && UNI_IMAGE_VIEW(window->view)->interp != GDK_INTERP_NEAREST) { UNI_IMAGE_VIEW(window->view)->interp = GDK_INTERP_NEAREST; gtk_widget_queue_draw(window->view); } if(gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(window->ss_timeout_widget)) != window->prefs->slideshow_timeout) { gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->ss_timeout_widget), (gdouble) window->prefs->slideshow_timeout); } } void vnr_window_toggle_fullscreen (VnrWindow *window) { gboolean fullscreen; fullscreen = (window->mode == VNR_WINDOW_MODE_NORMAL)?TRUE:FALSE; if (fullscreen) vnr_window_fullscreen (window); else vnr_window_unfullscreen (window); } Viewnior-viewnior-1.8/src/vnr-window.h000077500000000000000000000075251414645621200201170ustar00rootroot00000000000000/* * Copyright © 2009-2018 Siyan Panayotov * * This file is part of Viewnior. * * Viewnior is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Viewnior is distributed in the hope that 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 Viewnior. If not, see . */ #ifndef __VNR_WINDOW_H__ #define __VNR_WINDOW_H__ #include #include #include #include "vnr-prefs.h" G_BEGIN_DECLS typedef struct _VnrWindow VnrWindow; typedef struct _VnrWindowClass VnrWindowClass; #define VNR_TYPE_WINDOW (vnr_window_get_type ()) #define VNR_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VNR_TYPE_WINDOW, VnrWindow)) #define VNR_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VNR_TYPE_WINDOW, VnrWindowClass)) #define VNR_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VNR_TYPE_WINDOW)) #define VNR_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VNR_TYPE_WINDOW)) #define VNR_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VNR_TYPE_WINDOW, VnrWindowClass)) typedef enum { VNR_WINDOW_MODE_NORMAL, VNR_WINDOW_MODE_FULLSCREEN, VNR_WINDOW_MODE_SLIDESHOW, } VnrWindowMode; struct _VnrWindow { GtkWindow win; GtkUIManager *ui_mngr; GtkActionGroup *actions_window; GtkActionGroup *actions_image; GtkActionGroup *actions_static_image; GtkActionGroup *actions_collection; GtkActionGroup *action_save; GtkActionGroup *action_properties; GtkActionGroup *actions_bars; GtkActionGroup *actions_open_with; guint open_with_menu_id; GtkWidget *layout; GtkWidget *menus; GtkWidget *menu_bar; GtkWidget *button_menu; GtkWidget *toolbar; GtkWidget *statusbar; GtkWidget *properties_button; GtkWidget *popup_menu; GtkWidget *msg_area; GtkWidget *props_dlg; GtkWidget *view; GtkWidget *scroll_view; GList *file_list; VnrPrefs *prefs; gint max_width; gint max_height; gchar *writable_format_name; gint current_image_height; gint current_image_width; VnrWindowMode mode; guint8 modifications; gboolean cursor_is_hidden; /* Fullscreen (fs) variables */ GtkWidget *fs_controls; GtkWidget *toggle_btn; GtkWidget *fs_seconds_label; GtkWidget *fs_filename_label; GSource *fs_source; gboolean disable_autohide; /* Slideshow (ss) variables */ gboolean slideshow; guint ss_source_tag; gint ss_timeout; GtkWidget *ss_timeout_widget; GtkActionGroup *action_wallpaper; }; struct _VnrWindowClass { GtkWindowClass parent_class; }; GType vnr_window_get_type (void) G_GNUC_CONST; /* Constructors */ GtkWindow* vnr_window_new (void); /* Actions */ gboolean vnr_window_open (VnrWindow *win, gboolean fit_to_screen); void vnr_window_open_from_list (VnrWindow *window, GSList *uri_list); void vnr_window_close (VnrWindow *win); void vnr_window_set_list (VnrWindow *win, GList *list, gboolean free_current); gboolean vnr_window_next (VnrWindow *win, gboolean rem_timeout); gboolean vnr_window_prev (VnrWindow *win); gboolean vnr_window_first (VnrWindow *win); gboolean vnr_window_last (VnrWindow *win); void deny_slideshow (VnrWindow *window); void vnr_window_apply_preferences (VnrWindow *window); void vnr_window_toggle_fullscreen (VnrWindow *win); G_END_DECLS #endif /* __VNR_WINDOW_H__ */ Viewnior-viewnior-1.8/viewnior.doap000066400000000000000000000022071414645621200175410ustar00rootroot00000000000000 Viewnior 2009-04-16 Elegant Image Viewer Viewnior is an image viewer with a minimalistic interface that is fast, simple, and light. It supports GIF animations, fullscreen and slideshow mode, rotation, flipping and cropping. It is written in C (GTK+) and designed with usability in mind. stable 2021-11-21 1.8 Siyan Panayotov