pax_global_header00006660000000000000000000000064150037756350014525gustar00rootroot0000000000000052 comment=c4db98e0bc2b8921d78c9e3fbf3d85ad2a124bd0 Diego-Ivan-Paper-Clip-c4db98e/000077500000000000000000000000001500377563500161055ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/.gitignore000066400000000000000000000000441500377563500200730ustar00rootroot00000000000000.flatpak-builder/ .flatpak/ .vscode/Diego-Ivan-Paper-Clip-c4db98e/COPYING000066400000000000000000001045141500377563500171450ustar00rootroot00000000000000 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 . Diego-Ivan-Paper-Clip-c4db98e/Paper-Clip.doap000066400000000000000000000030141500377563500207040ustar00rootroot00000000000000 Paper Clip GTK 4 Libadwaita Edit PDF document metadata Edit the title, author, keywords and more details of your PDF documents Vala Diego Iván Diego-Ivan DiegoIvanME Diego-Ivan-Paper-Clip-c4db98e/README.md000066400000000000000000000022401500377563500173620ustar00rootroot00000000000000
# Paper Clip **Edit PDF document metadata** Download on Flathub
## Features Edit: * Title * Author * Creator * Producer * Creation Date * Modification Date * Keywords ## Conduct This project follows the [GNOME Code of Conduct](https://wiki.gnome.org/Foundation/CodeOfConduct) ## Flathub The only official distribution format for Paper Clip is Flathub. Any other distribution format is unofficial and discouraged. ## GNOME Builder Paper Clip comes with a Flatpak manifest, and it it can be compiled and executed in GNOME Builder just by cloning the repository and clicking on the play button. ## Manual Building The following are required to build Paper Clip ``` libpoppler libexempi libadwaita-1 gtk4 glib-2.0 gio-2.0 gobject-2.0 valac meson ninja ``` Clone the repository, and in the directory, run: ``` meson builddir cd builddir meson compile ``` Diego-Ivan-Paper-Clip-c4db98e/data/000077500000000000000000000000001500377563500170165ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/data/icons/000077500000000000000000000000001500377563500201315ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/data/icons/hicolor/000077500000000000000000000000001500377563500215705ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/data/icons/hicolor/scalable/000077500000000000000000000000001500377563500233365ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/data/icons/hicolor/scalable/apps/000077500000000000000000000000001500377563500243015ustar00rootroot00000000000000io.github.diegoivan.pdf_metadata_editor.Devel.svg000066400000000000000000000176261500377563500356270ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/data/icons/hicolor/scalable/apps io.github.diegoivan.pdf_metadata_editor.svg000066400000000000000000000071761500377563500345700ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/data/icons/hicolor/scalable/apps Diego-Ivan-Paper-Clip-c4db98e/data/icons/hicolor/symbolic/000077500000000000000000000000001500377563500234115ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/data/icons/hicolor/symbolic/apps/000077500000000000000000000000001500377563500243545ustar00rootroot00000000000000io.github.diegoivan.pdf_metadata_editor-symbolic.svg000066400000000000000000000021371500377563500364520ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/data/icons/hicolor/symbolic/apps Diego-Ivan-Paper-Clip-c4db98e/data/icons/meson.build000066400000000000000000000007501500377563500222750ustar00rootroot00000000000000application_id = 'io.github.diegoivan.pdf_metadata_editor' scalable_dir = join_paths('hicolor', 'scalable', 'apps') install_data( join_paths(scalable_dir, ('@0@.svg').format(application_id)), install_dir: join_paths(get_option('datadir'), 'icons', scalable_dir) ) symbolic_dir = join_paths('hicolor', 'symbolic', 'apps') install_data( join_paths(symbolic_dir, ('@0@-symbolic.svg').format(application_id)), install_dir: join_paths(get_option('datadir'), 'icons', symbolic_dir) ) Diego-Ivan-Paper-Clip-c4db98e/data/io.github.diegoivan.pdf_metadata_editor.Source.svg000066400000000000000000005433741500377563500306300ustar00rootroot00000000000000 Adwaita Icon Templateimage/svg+xmlGNOME Design TeamAdwaita Icon TemplateHicolorSymbolicbattery is full and there is no a/c connected. Diego-Ivan-Paper-Clip-c4db98e/data/io.github.diegoivan.pdf_metadata_editor.desktop.in000066400000000000000000000005571500377563500306370ustar00rootroot00000000000000[Desktop Entry] Name=Paper Clip Exec=pdf-metadata-editor %U Icon=io.github.diegoivan.pdf_metadata_editor DBusActivatable=true Terminal=false Type=Application Keywords=PDF;Metadata;Editor; Categories=GTK;Utility;Office; MimeType=application/pdf; StartupNotify=true Actions=new-window; [Desktop Action new-window] Name=New Window Exec=pdf-metadata-editor --new-window Diego-Ivan-Paper-Clip-c4db98e/data/io.github.diegoivan.pdf_metadata_editor.gschema.xml000066400000000000000000000003321500377563500307560ustar00rootroot00000000000000 Diego-Ivan-Paper-Clip-c4db98e/data/io.github.diegoivan.pdf_metadata_editor.metainfo.xml.in000066400000000000000000000055411500377563500315650ustar00rootroot00000000000000 io.github.diegoivan.pdf_metadata_editor CC0-1.0 GPL-3.0-or-later Paper Clip Edit PDF document metadata

Edit the title, author, keywords and more details of your PDF documents

Paper Clip v5.0 has been released! This release brings a couple of quality-of-life improvements and new features:

  • Paper Clip now supports editing encrypted documents.
  • The DublinCore XMP metadata format is now synchronized with their PDF equivalents
  • Updated translations, including French, Basque, Occitan and Spanish. Thanks to rene-coty, Sergio Varela and Mejans for their contributions!
  • Appdata improvements by Sabri Ünal
https://raw.githubusercontent.com/Diego-Ivan/pdf-metadata-editor/main/data/screenshots/01.png https://raw.githubusercontent.com/Diego-Ivan/pdf-metadata-editor/main/data/screenshots/02.png https://raw.githubusercontent.com/Diego-Ivan/pdf-metadata-editor/main/data/screenshots/03.png https://raw.githubusercontent.com/Diego-Ivan/pdf-metadata-editor/main/data/screenshots/04.png Diego Iván Diego Iván pdf-metadata-editor io.github.diegoivan.pdf_metadata_editor.desktop https://github.com/Diego-Ivan/Paper-Clip https://github.com/Diego-Ivan/Paper-Clip https://github.com/Diego-Ivan/Paper-Clip/issues https://github.com/Diego-Ivan/Paper-Clip/tree/main/po 350 keyboard pointing touch #ffb963 #9c4617
Diego-Ivan-Paper-Clip-c4db98e/data/io.github.diegoivan.pdf_metadata_editor.service.in000066400000000000000000000001661500377563500306220ustar00rootroot00000000000000[D-BUS Service] Name=io.github.diegoivan.pdf_metadata_editor Exec=@bindir@/pdf-metadata-editor --gapplication-service Diego-Ivan-Paper-Clip-c4db98e/data/meson.build000066400000000000000000000033711500377563500211640ustar00rootroot00000000000000desktop_file = i18n.merge_file( input: 'io.github.diegoivan.pdf_metadata_editor.desktop.in', output: 'io.github.diegoivan.pdf_metadata_editor.desktop', type: 'desktop', po_dir: '../po', install: true, install_dir: join_paths(get_option('datadir'), 'applications') ) desktop_utils = find_program('desktop-file-validate', required: false) if desktop_utils.found() test('Validate desktop file', desktop_utils, args: [desktop_file]) endif appstream_file = i18n.merge_file( input: 'io.github.diegoivan.pdf_metadata_editor.metainfo.xml.in', output: 'io.github.diegoivan.pdf_metadata_editor.metainfo.xml', po_dir: '../po', install: true, install_dir: join_paths(get_option('datadir'), 'metainfo') ) appstreamcli = find_program('appstreamcli', required: false) if appstreamcli.found() test('Validate appstream file', appstreamcli, args: ['validate', '--no-net', '--explain', appstream_file], workdir: meson.current_build_dir() ) endif install_data('io.github.diegoivan.pdf_metadata_editor.gschema.xml', install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas') ) compile_schemas = find_program('glib-compile-schemas', required: false) if compile_schemas.found() test('Validate schema file', compile_schemas, args: ['--strict', '--dry-run', meson.current_source_dir()]) endif service_conf = configuration_data() service_conf.set('bindir', join_paths(get_option('prefix'), get_option('bindir'))) configure_file( input: 'io.github.diegoivan.pdf_metadata_editor.service.in', output: 'io.github.diegoivan.pdf_metadata_editor.service', configuration: service_conf, install_dir: join_paths(get_option('datadir'), 'dbus-1/services') ) subdir('icons') Diego-Ivan-Paper-Clip-c4db98e/data/nautilus-extension/000077500000000000000000000000001500377563500226745ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/data/nautilus-extension/paper-clip.py000066400000000000000000000053531500377563500253100ustar00rootroot00000000000000""" Author: @DodoLeDev Add a 'Edit pdf metadata' shortcut button to the right-click menu for pdf files (Nautilus GTK4) Based on the file collision-extension.py created by myself and @GeopJr for the Collision application -> https://github.com/GeopJr/Collision/blob/main/nautilus-extension/collision-extension.py """ from subprocess import Popen, check_call, CalledProcessError from urllib.parse import urlparse, unquote from gi import require_version from gettext import textdomain, gettext textdomain('io.github.diegoivan.pdf_metadata_editor') _ = gettext require_version('Gtk', '4.0') require_version('Nautilus', '4.0') from gi.repository import Nautilus, GObject, Gtk, Gdk def is_paperclip_installed(): try: ################################## TO EDIT ################################## # TODO: Find a viable way to detect if PaperClip is installed on the system # ############################################################################# check_call("[[ -f /usr/bin/pdf-metadata-editor ]] &> /dev/null", shell=True) return True except CalledProcessError: return False class NautilusPaperClip(Nautilus.MenuProvider, GObject.GObject): def __init__(self): self.window = None return # Executed method when the right-click entry is clicked def openWithPaperClip(self, menu, file): get_path = lambda file: repr(unquote(urlparse(file.get_uri()).path)) # URI parser file_path = get_path(file[0]) # Get the absolute file path ################### TO EDIT ################### # TODO: Find a viable way to launch PaperClip # ############################################### Popen("/usr/bin/pdf-metadata-editor " + file_path, shell=True) # Execute the command # Displays nothing on a right click on the background def get_background_items(self, files): return def get_file_items(self, files): # Do not display menu entry if it is not a pdf file that is selected def check_file_types(): if files[0].get_uri().endswith('.pdf'): return True return False only_one_file = lambda : True if len(files) == 1 else False # The option doesn't appear when a folder or a non-pdf file is selected if not is_paperclip_installed() or not only_one_file() or not check_file_types(): return () # Registering entry in the Nautilus right-click menu_item = Nautilus.MenuItem( name="NautilusPaperClip::EditMetadata", label=_("Edit pdf metadata…")) menu_item.connect('activate', self.openWithPaperClip, files) return menu_item, Diego-Ivan-Paper-Clip-c4db98e/data/screenshots/000077500000000000000000000000001500377563500213565ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/data/screenshots/01.png000066400000000000000000000556321500377563500223170ustar00rootroot00000000000000PNG  IHDRnbsBIT|dtEXtSoftwaregnome-screenshot>&tEXtCreation Timelun 02 oct 2023 15:30:23[| IDATxw|[9-C)I M3@ mY7JܥAPB_Yތ2Q@)%̐$8{؎-K:?l)Gǒz>B:옷/uIbt2)譬n@&!% dBwp|;d{pUY-HfnY!Xf{2:TgrЗddδi dLΔGolN16uJ&|yӝO v#K,7@b:l̟s@ׂtK3@ꤲǺτ&V#; 8 Vsw^ؕ6: >?x ս:P } ЉdD5Н NCq ӽ9Hw%D':6v#kldxoX3*L֠ؕ:dCrz'dD9dvW{TYqZkvAi;]o Nkfu'Nqt6P;5aδ'^N6@' ]2/ ɖrt&P; i B'c8'ꥶ Бˉom1%(+DG[+@;)|*HS9^Ƅ#:rdKBdz:{Lu ӽ!v &F1cme&d&QOr/0lux:H3Dw6@'ۣ QlΘ03Sx'*cd{&^fΔxdejomCSu"@oq6sWt mJ9"͈d āX:2P|}.L .:V/Vʯ^XR0mwLuvHFDcu4@ d@PUR:]!۝.ݺh f{mڬ7l3D.8J;bN[6f{WJ<5HwwtgFHv]Y̑"{ EfK(4kMd/&MzIa:4D^Кj #C;Hf Ɇharm۶ 4觝z'Yw#FxTtd#u*{%Hwh 5ё7%F$|g:oРA?ϖT̈tbWw\D]+Ual7t:us $I?_ޓys`x㺫!N:AB)9ThE @濗RRG0PYkDH;J;:)vˡ:w:o? ug~2tn)R@!-ʪ]ɗ)WfU= _ļs~==>*O 3DWA%:/k3SN֑B{BSuBo]pb}ؑzJ *p?ZxDJuVqD]ױbnȴ |>M>O~}{ir)77Wn[.WqVfu+%#ވ=*A3)$7^yd yC󩩩I~~$ۭTț @ ǦG=G:!H;I3@:SǴUceLls^+ݗ{g>CkciMMMѡԕ&ex7*κ>tCNʒhxX}j8dt5Kj---NOEF~ϱ#zkiG֦|P .Tmmmpĉ^=:m|>_z#544(777%7!ftdk,D=v?#N :0NYOx mƍӽK'TUUI -#zhZJw!0L9rd ]rɄ #c~|A=q j͛7OC֦gyF7o^0,+BK,њ5kל9styi߾}zTTT~:3lnn}ݧw}W :u`̙N:Izxtg+H'dbvii&۷O=-[]vB'p`ou:t^~e :T<@xϧGyDEEE/~ R{`U1g`T2mл|o]ڴi͛'0qF dV^.,~:Ԏ;$)o]v'_]7t{9͞=[ׯג%Kt;7*77W ,߯+Vz^zI9996m K/پ}=\-]4,HKzkԩQmۺu$u9D'j+)'''잎^uG'ۂt+h:uI'ܯYԿn߳g$1bĈ` q'Iڼy$~s .//cɒop)|mj5JR/_rJɲ,߿?T[uݶ!Z(=wUhכn64M3n޽{5oL>`׿YSNM8C}Zt>lM8Q555ڰa***t 7D墋.WU-^Xa /޳:K/O֮]ؘ.]4hv^>II+R|֭[sj*++uQGoTyyvܩx@]tQsj+vfCn芊=ѡzUMt#uv;wzdGTQQ\?/_O?TÆ Ygׯ_4i.]aÆ+ 9K5\A^_1B&MeYqKQ$gڴiKK/i…:4rH^:lZTTG}TO>/^Jh:C%I?^/b z%۝)PڑL(9R:Tsňn,WsNsY֦?zWheȑo}%m͙3G?Ho/>O{M9+**:򎒴_O7:N!"C/%HޭJW]uUw_ Rqqq܉:;o4S=Бu!u$??_]>OaaSТ^'-ٔQ;2@aa_\\0Ms輩i󩩩)n \F:NZJ_t2;H RII ڪ6|8ir)777]sd 4@r\j5i4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@,+ HsKi腒 Ή#X@p='R =(ـ+0 N'94tX!c ljBeYip $٠/8+|>~p]d5MSirr0:^&L@fBtv/׫Vݭ/XM7k׮Z۷_M-xtjjvz-˒?b$ 2XG̚YG nl#reH$//(I%$yC!+XVȲBE.[!C%$c M׭ڲe.y_ZmmmQԖeɝצO)#vX t %}>jkktZ yt*))aa#vDh XCCt}}.YK?n7 Ch_~Ut‰s=Ӊt4$ NY}BKo+P{m޹KAMMjk0 ߭bhrL3@K UZZ#ga::FiY)|!jzj#t߆Pz}fo)_LڶuLKC 胆v' *+/Ӕ)gE }}jي k8 ϝ=&VIGuujkkSx^O>[ _neInwH;JÆрTTT(߯fݣ[vj-ڴavl59zƌ!!CkȐ!ZDt$P6iY!^ NEt￿\wQAussSut8|FT f߿_ڴi_lڮ=jW;zZ}rI*,, ёaZ͔|6  ɝYZn_;J:#mD=Wױ_?B'uM-[\ÆSIIIXd_/iـ #%-;V`Fk׬q@ҏUVV^_:SU^^ޥ jƏ TE =s5:ȯ4}J&jC]&L6iY&@/#,ܷ+hjjʕ=nͪJyu'544$]6˥O>Q>W=6VnsjקO>^BF]rr)//Of0{nFLEq E'I jjjR^nrrRڎmݲ=`ʐeSPߨ]Z4q҄^?/T߿.Yuuu*,,Tqq13"Zi%Q,K555ri@~i y ھ}gX ܢ\i ѩO]WWj 4HR24Le&&]UU"=}R~?lC֦imG:R o7"HxPo>UXP- d:\rMn]z\\}GW. IDATqaA o>Ih٥zDԤnkϗ:BlucCN>eN']JKKԤPti-Z={DtV~ړ.a(/7WMMMA@Ƴ,KrwshyjCiS=锟 &95d4`B|>7Hd8?RGz= V  +X?>`Yj)+r&0wW>iգ/֮SMڱsݫ CW~:tƍ=H2^yyy}+ pwA@FrkOn'0KohhԿV|Z[=z}Fmݺ]˗(;OӦM׿~t};v0!LE4 с:L^Oo~{qX}͖.@+>Tc9:e3:Fd:4S׍C&=IUVnVoo8uJi)TĪAvGFW]]??@{ NM[袋/Р:;dلQ; MLӐi٨i;I~pv:F zϞ=zԥР~I w # twx3kr\՟HޖmA2Ո /5|tv+T{goDrkwzϞzU6e8 5԰yj:[ bWiph_ȵ}YT$0e N֫ʴvo~žPo/;9<\~Vkgwj|1@&G:TUCV or4F˒ +:u^\ x,7hٽ_--/׈CURVjcWV72@/_Q- uR״Efqs4n`{DEyNkW}IqP7z_sEq!i2 qáa7&Y x}}ޭǾWsG谶=@ OUUk{S=)@"H@)#0ZMNdܸ͞PWإQnӌѹڶ*(kv@VRekayXH@dG[:e#DC= YL+t3ϛQg>?p.q{P # ibƎ6M3:!;8g 3&qǡNi ib1u" n@}8T4t [q 1,CL8ԉ&dz<:Pc.5x P#H@/q I!H@!CttuS3$ TWǡN;z@G^,8]t[: D@4NơNxNv`EUU;:4#T\;&_z<JEvDL=,e;x P#H@:0l5 >4dS5s"d:4I*O= U"Y6[7Ѹ:w(05F@\iH:6{H̆S5 >4 сr8|r\ii2JO"  _WeoYז%oG-mmkj3aYM۵ S# 군6e\&:QGDGΕUR+SC^gh,[S!O[[SC # imm H!=_{~UaQ?l9;47A&F[%vaq?Z;cXwʦahmJu  M*/72Pm"foՖ[o_}Jr>Hw&cݻo0聎 ԭKKy}g.|vnIYDzo,KSs1`iH98J]~qdJ8mf [ڱZM|䓩WwF 0jt2$~rg9^Y_nq%i[kNXk{\CU궏iC󁍣;ߦ'Wwښ:r\COY iHWZ|2͘ P5t P7[nz]rWKs\֢m=G}vu= {s$UܥgVHR;iHoޫ}z}QHtX)-Uϝ6{Li_MN?,mLD4tѩ$OYOTUkj~/+tuw5]=Dޘ?诪?nڡLSi>}, ~Z@]vH<{Coikkp+qGHgZX770]_רtBlC46dJQCrI:z{-9U9hv wIK Ūni62 #8RH$׫uk7կHA++T3WC :0^@X~Uj)ا *4$I<մkskV5ѧgPF Ԗeiݚ4w7: eZQu"M >e%ԍm9zgH[7R 05vudyt3:MF{YؠZ>۩PF7xRZn~TFnau-jlhRZybiӚT[[Sc4m4Ó)Ufmr>n=TgNGk*OMz3'Ki]*.-T~rfZΝ5٭S;h"4&OٯO5Eee*)/p$P[_kkWny>M=[j#{i+]1:ܥgгg~_¢B*?%V[ |*7Ktᑅ3:+ R.4 }gfNËͪoP}}\Bn*//G9fu%^񴩥UMy'p)3tElvaNP}B,'rSrE?DW[~֢>n'ЬƆc_+釹U4ԶkS8Pˀ*\, 9D*2Ss/ ɯemtG|ڲǧM>5[* ]ϥq]:2WGSEQnJRZm?Lnw :48r[?I5I:ݔN%iTmJ[sb ?ԑ%%Q2 Cmc^V-8ʢzmz7s # ]-C g &蘉UPP )qjСIg6L@i B2wTi@Zd:J; K%y,3lC4BY]Y_# +6B?[2lA\sslsZ– 52^ ޵K6f8U"ϖi-4m۾Me`k2eYڱs$B3BrrrҢnJƩRKKkpJp4lAMRRR"_ڲe3)ܬ[6TZZ\$,A@3 C9j,RUNyڼ)KҨѣvgB5LC5&NZ>zZxԬ6G>|~|fO>vڭC9ݎQ;d$0dYVس$~zvkAjhlP}}ínJJJURRR]>[38CaDs ӥ\m7BM}̐ˁ9u,{Їaڲ,|>[QF4 556R;@AA [ںed:r`H2_^^QKI<;^CV#e\B^J4,SʇmG@ F6 C.K'p_A>/l*/:Rqq&z@!H(n9tݐ!C4d!:.'!%B5LE"c,1=A@Ɖ m: 2T#\ӉLA BwN@#HX´:PGs2 !@6 Hhva:> V؆DlAzGb4lC5X#>>'ي P5ghG'̞ni4Ap 8@ Hi4Ap 8@ Hi4Ap 8@ Hi4Ap 8@~}z-}GQ]]JJJ4p@M>];찞nfk.}[ߊ@eee:tLc9Fzh7 Fn>l,cX<\9egI' 1o߮Og:th7,$ v&N뮻N&MJS 򎒴_O7Be,+d]:ݺl44%>]K2wiIr\tYgUHڱcGpyя~ԃ-z^6iJ;,cǎNhIڿz=c8p`ZLӔa,K~vϧk={v7fUVVnw@O!HY; n[]vf̘~/Ыwy'l={{o~lrƹktkǎڸq}Y-_ZhQH?OԺs/[oիW~ $I-7,IׯR ,ЪUڪI&#/ӌ;~W_}UڸqJKK5f}:쳣 $=3f{9-ZH[lQYY9]q7n\Rի[ׯWMMUTTÇk̘1;wFԹ:sч~7x#l{g[g]]]zJ~eY: 3F~MzUUUzamڴIwV~4l0͚5K{ _JZ𸼼V\{Zxqp`}駟=uмyoGaҥ:#%I3g= c FKt3ۅ^o1lݧ~ ҡ٣gZt|>_pe˴l2曺[jt_eQ;wԒ%Kꫯ;ЀbRUU֭[\ܬ*-]TwqG0OַhZr^y͝;7-7]qQA/[|z9l۪Uj*+:SӟTaO<ְmUUU??x_%K[oՊ+SOb XBk֬OӰm{@vpa oŭŋBt+W׿u;C/BXj*}q;P澀)S.'xB׿YGVnnnغ={-?{BtE[nZꡇ ѡկ.;k ѡ_.zD2\MKx̰aâ544$N]7&@o_NNO; 4#oBgy /:cz衇`ʢn;󮨨a*//:>x<.ǻ/|bd +ZIDAT'z wjڼyspW_|;={F[w3<≮ÇI#|2 CO?tԟ#jĈaa0??_ ,Awyzw͙3G͓$}_knٲE/c=[z9{].ƍ5kZpN;4I?ϨQ'Ap\;v֮]ܶj*=c袋j}>\.gyFwqF{]7|-_^^Qw/pinЏ!~z꩸CI7a]y s7뮻iQ7Ι6v矯w喖]|:5zhiΝھ}{T=o:oB,D}()~W? [7gΜ -Iۻwoض<]zٳgiIsiرjmmUee.]tEd;?~8;==4vX\2\[[/\3fаat9zz'4oԭsg;Æ ]wݥ:K'N .wy裏[oy<Qnܸ1A@ƍ y >/g?yd͟??jH /PNn:ફرc˗^z/^kkkj|`>c?!=N8ᄨ׮]kjȐ!i KP# do|{4Mr)Z`A=/jM7ݤJ;vMW7pCvĜN=UJJJt 4Mzk0''GvfΜիWJRh/W]uma 6yKz{h̙3}J3ER\HYk_~iZx>3ٳG*++Ӱat뤓NJ*pK/{vǏ;O'x4w\=ڴinݪ_~7nOCvs衇'#\O>֭['4uaiܹ6mۧ sq~裏3}3fLoEG>hmm=M{muuŽkYT͛7ǣ>'Nuž}⪫:""/_c… W_H4Pŋʕ++</bq=_?ԇꫯظqc8q"nsԺvYcƜGy$|صkWE]qiH2vؘ0aBDDL81x6mw]׽ni„ `?;w뽗vcݺucǎhkkUVCD7g>w9s>8~x[˱cbʔ)1nܸeggg8qקT*[o5,Xo~]ǵiӦx⡇;w /<@aۗ^z)yXreٳ{ZO_Ec("H}2eʔhoopXxq\veqDDM7\rIL>=>ŴizF`_{سgOY&.처1cFYqTa͚5񶷽-&Mv[;v,8yd?k_͟ogggx O4)/ٳϹO@5@=z4|={9mGz*?W_}5"">R).w^U뫬gMozS7.N8{_͟Ç+⊞eƍٳgWInmms n|vw6mZ,Y$n馊rɒ%msETO~=+:::*n3O)'HN<nĉbŊ7o^X"N{JT*ETyE[j_4Ff8GWjid_ow7}qǤI|gDD\pqx'_|0:::b޼yz˾8qbcƌe˖Ŗ-[SNő#G駟nԾKiP{޽{-fΜs΍]v[XjU|ߍ۷ǻx߫իcͱz袋z~$髖nᆘ6mZ{⮻kb=3a„>6lGƜ9sb۶m"I}dɒX~}/~lڴ)9'OK[ֆN?fvE[2ւ6˟Lǜ/O_j\AvرZW<\k`$;vDq*"2ҙRӝG{dwgjծk<1}9vCqꪫرcuXtPT%HCcǎ{/ŋǢE*5i.4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A`t l:GvkXg T$[z.|F\k =.&`ihJ4$ AAiii``4lT5둿i~Tgg.gթ(^Q0}oz+]SSL˟οO &gU癯d>Q0_4m*C ).{#}"롇mB8e>lZ4t.Z FyϘtK/^xN 4iҿE+q:LL˟uzt^*)2 aJ;j`4q*g2kQFdA5#__iT{K]kڨ'|9s|ꫯψ8FG#:ummmG8;;;oۓ{}>N?Xgs/r4_ݗj zQot~h9#έOc2|_qR>Cr9_u*Y-,LZ\Ę켟u FnYm)ΖtvwE0U E])<@WG~ٰ A:}6@%N?8#40emяT.zCGY>P50yn W4\Q|rW QTQHt7uT{KGf1H7"ݹv| HVP`>8LW{{ǰ0X?Q e~FЕ~5s*bJW -+қ:`]ze@4tJtQ)Hv$9;2KD!;M~D`$* Rs>,;%6u3HۥJW{=^EoH|.z't]n]NanjYt}k}G~*R*aQ2ݬhTzG6{>g_WmTp 4Ff / ƕBu72T-H3r]+v/?2]c/AQ-zHRFEmkSS8o;+0J|(W} hSajV ՂuV_G-lv@Ly0È^OW@bu[BFJ%,uRn ˚qD]5.Z__i(h̷)ˏBgSC0##jLWڶhԹmRJ,KnEm ժvPY)̦j#D7ڶφ*tѺ]mQ(t6ՂrayXFG4.j]_HW`Y=!yCtmP iZFzsvy=!xDkG`z_!hv4 :DG }K/kd}FNJF2jtDt~y_uv]3\TV:|-k~ AcH ӵ qF4Rc uAFw#἖!f ~Vn0jdSGw4[@L9(P pV:Eڥ=-,O:ԶI##}65 U dζsoPMҾX7Ѭ/Ǖmk0KnѼA:bt~f6/>{a`GkM#GHl0<@="6CP) ױsN+6u.nқ6OdXaRkrA3@p.a C e#!09P`aFJ0lhcFf xL iaoH3tH#FC ЌFd.m!s/`9k~}5js ٛPݨ yc}\'`kk 4+|()*QMjdIENDB`Diego-Ivan-Paper-Clip-c4db98e/data/screenshots/02.png000066400000000000000000000713711500377563500223160ustar00rootroot00000000000000PNG  IHDRnbsBIT|dtEXtSoftwaregnome-screenshot>&tEXtCreation Timelun 02 oct 2023 15:29:43MN IDATxyxTd2YJB.&"(u|XRj[*mu(XV+ B@=!a g23?`3Ir$yg{w{'gΜ{AL@;9 '<]?@x:zpT6Xw юu`eG8FhԮCu{ڒv[lo޴P^g4G4 tL^N^kC{8_fma-ÖЖղM['@{j}@ւts՗gӜ-m&L0Ժm@kRGṡ۷NCCkcms֯C :@76 Q9H7%DpM!:"wpۅZ߮tŦcnhH,7<j}CvS_Gh FCtcpsh<j]Fzh Fk`e{h˚ҍhtԄh O]_oʐymY`mhWj#a DcCtC[C8GPtr}ۄ۶uh - t 'Z+Gsu:p9pv!D.|C{4K@[ՐZ7u SP7F1&X-sCג*( ̮0Bn8:Hdnlnh6@Gv#s \ ѡqC[iMl]@m4L7G Mm6i u"@i8Ϯ sStԷJG*6gu _<@{*{Bu`tE ႵgۅGmSʥơ[t* Vh /pt`Yu4@G@ۆ'Kj_n7XoDSo[[SZ}d}mRn Ii .`];BNl ţUtkH7f   ́[ # nD9Sl)` עVmD _tCB91g2G@0.]>$ZEdYFa)1Hv\j`Å蘳SOJOʝ={ԴVu2|$md*v8ߜzMqqqW6:%>wuWJSm%$Xka)LY(-HkU, ҁ4<7L']ٯ_|$؞={[/oh`]xqU:A:Ņ˳oWΌ֑XZZ+wUUU4%%>I:3zE:B%1X@Qӽ5v45:P}[cyބhG3OyePY)ٴ;>obٳL5:*V f`|Q%tɥ`o%33f'@v6[F;LEhM99Nvm}ijXցMxM8<ף;G΁*oQ_g>ԕRro9Npt:sݞlbjfAfPwv,Tfodp#~DTK|Rop}p hN*++USStPeel6#P^TX_ tplV:|`ݢ!_[²e$I=&M$I:yݻW3g>55Uw?V/֮]{*33S -ܢnݺ5QoԮ]{)==AϩVmmd6GӦMSBB}ݐ,ZH$Mh|h⮹4HKm{ ҭ&ysKKKSO=9shǎ~۟:uJ;ԻJvء4 2D|O?T׹rSF {}GZh4G}_r%A:je# ַ4dJII$>}Z?+aЬp4V$?74 ɭ (--M/֯_ח:_|Q;vo,Y'#<"ђ:tHvW_D^ZN'rA^}v͛7O:}n}WѣG-"^Z#ro/K͛7O999A;k׼ydZ%I&I7|֮];vhպ 5m4͚5KNg}D]+O?իW\#GԜ9su6m.bkժUꪫt77۲{ 7b>԰߁ /P999zg}H7tmc~yo jC^3>>^K,nwa]s5Zn]gM>]1118qfV\;S&ISmmFo]11sn]}}aC v^{9 H-;W_Z'Nرc*8sWAAF7+"L~3r_]א6_#=8ߥ{o߾紴4͟?_}޽{oDtԱc_瞫w_ȑ#뽡mݦ-[hݺuꪫt9稸XJKKӯ:_p 1b֬Y#ɤΝ;+[o'1cJJJTQQQU@[ӿ-[LI&?adeeI:s\mmKI*,,Գ>n;5 .g>}ԵkW>|Xwb}ݧc*11Q+V$O!wn{pNtfk| l贴-ѾQ':P@xKK/5z8O '--M/,X7j֭ڵJr-u֩S' |S&e} -ZtVoVZuKaXpԚ@-u!ZI\\ZHHHP\\\3(H6ev !!AIII,a#i];:,qqqZl6M mAX,JNNVBBjjjp8t:cۛfY,Y֖ HC->i4`A0 @ Hi4`A0 @ HDvG &)U|& A@56@ۗdN-"@L`²&L i*$ +0ץ0 `ehkߐKa@D\`o' 3a@$p!ۢ ľ&IIIIgQ *9rDؾ}C5!Vf4 T%m@4 Hhф hc@!Hh 4-ZAmD4"*4`AMh@q"@[DY|IiQ@hki449:n+DО|[R߾}5w\ԩSڵkn_~ڶmF͛7kܸqڴiƏ/ám۶)99YYYYڹs#G(++KV>}TPPD9NRΝUVV&ɤr-^X?ϕ AQiiv>ShZfx}ڵVXcǎiÆ Z~Ϫk׮r:ڲeN=*٬5kbX :zz͛7Z]v͛5`LױcԿUWW+666ҧ44)S(..N3f_};޽{wJHHлᆱJRffrrr.ݮѣGl64|puE_|s9GJLLԴiӔ\u]OV=TXX(Iҥ:wBu)gSlɧ35Y<ϲa9;9;8govP}Tڜm۶)--MݺutUZM~~rrrd27j 2bcc'J*T3uw<>ϲ|SU߅(~ - :4UQ;i44nMyyyZrVX!I:p.]'NTO=NCqrtA9N:tHCԁkkkUXX'OFr::vOF@ņL O/˗/Pii~T5jN:7رcշo_iʔ)?YsGqϔ+W'w߭O_|=*á>^ ,М9s` :T>|ft5ѣٳ\.ƎǏDŚ:u dnf8ZHGnqiHi4`A0 @ Hi4`A0 QvvGtgn}JKK_'O*==]Æ SL  d%\t^Zeee2zOfEt(ҳgOuYǏWVVfΜAjFjH@۷$k׮:s%IÇd!" @ H+yyyr\ھ}{eIѣG%IZtij*mݺUvκzN7|zqm{nڰaC^rMn_[[G2&6v +*((֭[UTT5kri̙ڿk.UUUi4h<#GwUΝp8T[[wyG555*..Pyy***jԠA /H222t饗jҥ*))QjjX7oֆ d2dە>HGfSnn٣Ǐ뮻҃>4S555:v옲ta8qBJHH￯)ShݺTUU1b>w}WѣGu)m߾]111dRlll٢!Cs… URRqpW^2LZv߯rS[lQ>}T]]JNSwygrk4;Z+]t̙3uyiժU5uT7NÇ#G(99Ycƌbu7kĈ;v2335x`mٲE#FА!C4j(7N}Q^T]]-өw}WW_}' IDAT6oެT \ǏjUb)11Q]t5ydUWWX&I[nӕ%٬,UVVĉc~7{ ˾ۘ}Y<,g1g=ݾ~v;[{RVV*++Ш*%%Ż\^^.!ƙWNNL3BMDFllDIj}.Yϲ|>K}-(T-/DKRRRRht HK*++|ȹ'N4jh:yꭶV~9NUUUpH:7|a_R.+6t!>灯ի_|!ۭ믿޽{nرF5.kZr:u+66V999JJJݻ_תU4p@fuESRRr4b9R;wTqqRRR4e?QJJ6oެ^zСCJHHjfӑ#G+Bжm3+99Ygʕ+y;q_B/m6M4IեKԨZ2d9N:H'Nŋ/á}iϞ=˔}ꭷґ#G4n89N 0@QC4vbh޽VBB?_]vUJJvܩ1chСѣG5c +..N5jf<vjzVl+66V>|l6;xUVVj̘1JJJRjjbcc5f%&&*&&F9ruuEVU:t萦M8())IڿV#ɤ(..N;wV>}t9(!!AIII:y:w O?|YVh:|u릢"kĉ7|) \v V֘F4DN:E bCZ \.L&o.$,!-&iGΝ;uaHƍSZZvܩqvkС*,6 XVhԨQ?~F!C(99YVUK.e8;2H@\]5jw~Сr݌JQih}i4`A0 @ HpCh%.K>f͚nl69޽[}jԦMt!]q$vJOOСCqF%&&/f@BVt:_|QGաCtEPUUU8p} 0@?sjXSAAn-[LԩS_k̙***R^"}СXV9R^x>sL& }TvmܸQW_}u1eddtѣɓetQ>}Z%%%Ζbɓ#}X(En$&&wJII.ͦjذa={HŪVVVJKKeԳgOUWWHuH {M7d ЀF>i4`A0 @ Hi4`A0 @ Hi4`A0 @ Hi4`A0 @ Hi4`A0 @ Hi4`A0 @ Hdts iG"-"H>|i4eVmD4V C"@[F*…f5bA&a @!HVE$&ɤ[rݒ䝆Rz me6LK<h-id2eOP- 'X(MEL)iQ7T{ Ih_P!т Uk ~  "@{W J* In mGii.L{'8u,i؅#@LF1!@ Huѱ6iQ@4#H:'@[`t @ Hi4`A0 @ H1˥zJ˖-bѕW^n)B+ٽ{n{NÇokϞ=*..VvvF뮻NQem A@X%%%˃3JKKSFFv/X'OjmZ;W^.?ׯNJE`Ytw|O~m߾N/~ ]wu^r#+߿߯\40˥Ǐk׮]Zr]}:tP&Iںuk/25iێ94DK'|ʵi~oVkXm A@*))w!(++NYvvvjҶ}G!m߾]Gm4*=uʓգGeggO>mٳcǎ:AH;w԰a"T3iڿ$i+"Z? vkm{޽{UQQWvj̙X,Piv饗k$9N=CuVAAAătjj^~eرCfYs,KDk޽唔l6{>6teyZJvhbݻG6uYV >\C%Dحc„ }rll>S~+Yƻ귽Ǘ_~ŋ@%%%*//WrrRSSտ?^^z$><'|R{n/rss[|8 4H7|lݺUݫuI:uUWlnјis 'NTJJx o?==]K.޽{pBm߾]5552rtju֝8qB'NP~~bbb ^EEEڵkJEEEZn}Q%IzꩧxbnoyEE vZ{zG٤is+//o٬+!!A kj?'Nֺut:ׯb WΝwaw}+߲elb>t`or賥Kĉz .  yZOB=r\~>z-hz'ʌOk_CUJJVk۶mkr5kh__}z!2˥ᄏNB4fdڵK=bbόoLWӧ+55U***޽{5vfy`87z^f>m&McjݺuϽ jxZn}~e'N_p~9GHNNVmm7mڤO>DӧOtf`|T^^v;Nx{a0ti-"//O-ҏ~f_aarϞ=5m4 0@IIIORjj~i-YoAڷt&=cZ\r_i#Z@:į[nޡuV9?hڴirz駵h"+V>fYפIdu=hA_g>}z衿o 7i18Ww;˥駟ʕ+۰aCAiݺu/R~$K.=z.r5Is]wW^u#G{[唔 o߾&Ok)MXᄚthMo&L $ɤnM˖-ӱcǼ}+(({5i$Ig.f[Bih$fYzC=Du_RiiiAm׺Tujkk%IO x/QTTn{Ok٠؁<;lӵsO:UF*]ti Hh6oTvy]'R~_h„ uFoXhQle2B3;==;oxZlܸQN2~K,Ѽy`xۂN:)66o kfk.Ҥ3֒kkUAA>쳰튉u][VV%KioԧO ޽1i…ݻw7r;y-Xo-`>S͘1C&I_WIޱ=վ]= XBӦM/l8!mٲeڱcwɓڴiSf͚,X裏sQ߾}mڴζuW}{]֍7ި.HzRll ua=Z_}5΁nתUƌHMnVXkVK.e˖?icl6׹l֕W^]8q_vݺ:~@s#Hh۷׹aٳg /._p_b8|駪_:v4hhYf/nޫmAA_6r>OBB.͞=[oۧXJOOW߾}5f>8UUUuwE!c6uo;Ν+٬?\III={vpВ%KC OfE]tc꥗^ҋ/m۶iu 7(>>^wkhN/Io[o)LA}1<ϳyXNc{)v}m#>=~e+VhCGllDIj}.Yϲ|>TFk`A0 @ H0jQ;4A0 @ Hi4`A0 @ HD0vG LHWې`@ @ о m A sGm@ &?'P (*@;N9NrE(٬Y,Y,uDR!rvVv]fYJJJl 6vrpJ555ULLL&fw;G/thO RMM$)%%E11me&ZV6ͻu0.h%өJl6hbbb&ͦJ9N7BE+t rTUU$%$$Df5$$$())IUUU~AZ"LG#7%F񊋋t@+O7OiDޕ({a$%&&FZ :/3I`"eBx (l"% "V[]=9"ؕTk[޶_ZQY) jPAv9RIHI$0f:f2/I9sp7O{zG}TwqG~uEÇ7߬]v5z]}+ԩSѣL<`Y ٳgkĉڿ?gi֭*--՘1c\ݺu -|<&!HZn|MW^~3{={,;Kc/_jmذA6MK.՚5k%Kg?~W+VPǎsN-]T]wԹ|ᇚ2e$)++KjhhPBBΟ?Ei…:u***tEIj,6jڰaRSSrJ͞=[<-[&IZx[?σ|1ڵrrr4bf͙3G|oXuV-ZHfY)))? 7sLw}:t:vg?VFFGyDiii:rHPQ__{qР?\TQQ!ͦ &s:pÇl?,I7o~֗_~v`o4L&ܷHCS\\$fb4n?I_~jjjT\\& e2ԯ_?KF|?^ѣuk„ {t7JRe7z}]AId6uO>t; i$''K6nܨ.]gkΜ9@G;'PffKsUb l6+;;эt0`,XW_}U֭5iҤF\xyy5bZp.p8deTSS Db%''+>>^F}y8^9IvI6crzLuyccٓm@@@@@@@@@@@#VUU& (e6#" i i i i i i i i i i4iՑn@T"H(өW_}U"DQ~J}\aaZe +]{0`曠+++jmŖt lo5`edd:wsWTTߖ$\[lo~[O>o[;vO#HǠSN)==]߿U__ѣG+--MO3f?5~xڵKdZm6MW. t sDChg8qbdj~x jʕʒ$F=sW< A|w~'*//O2 Zt&Mf"^󕓓ӪUd0ӧG04B4EPB]zي+D/\=&zժU2z4uH7QiI˖-nWVV!A!HǠ%Kh=znF{zuĉFz7#UVtL]]|I?~ZhΞ=+RSO=EF@5k,hǎuUgΝ;deek`+Ck޼y:thq{q? #թS'IRn4j(j7noonehxH7NK/v| ݎ$In/?PNS'O޽{vZp護M#GO?&۵duQ={oG꥗^Қ5kw^={Vzң>;ýٳO?T_}OkԨQpnv#d4i$ٳG?TPPoY;vtOKԨX.\hTg[d2TWWUAZ:y̙sEYrr$iƍҥ6MCQhpn7*OLLTbbbM6M'|R~H5gM}hرW[IIIڳgc%I_|}^Qp8tQ <8`Fz:tHǏM7$I:v옪` 4HIII:~ К1AՑ#Gb m޼Y999>{k㕝5k>nWyy=*IJJJ]wݥ_:r䈾{7q3gꗿ=*XBfb0tmĉݽfYzwu9KR'6vĨwyG4p@5J}p;w:t+VLfY>|$駟֪UOsԻr,^XW֢Ed4vXY&aӦM{{ۀ`ZnƏI&{YZLk $ T8Ǻ>\xyy5bZp.tJ{|fSMM{(E4Դi'5XɊhtw`E@%dd;./;<&ZǺP#Fldҭުٳڷof̘!٬ .A[UUQFI Cv$Háqӧ FzTVV&*ISFFZroǎԱNQ;< В葎12޽}֯_ѣG5a 6L~ uEu]v$iǎnu] &*--͛3fhZ`KAxϞ=X,ر&O^zI֮]!CLCzר}iiiڻw:aÆ]BkӦM޽F팋S߾}5rHIիu7ꦛn$Ν;IMMչst)InkhhPeeL&z%ݮRFId$޽{̙3*++$t69f[UUt:t:U\\Z#9tP}ҥ5tP8qBeeeJOO&;k]VUgΜtSaH zЮ]ݻkʔ)ܹ'$$h̙*((Ч~D9RVQQ|ML&(333UPPÇ{ue24}tnSN1cFP=.C;wִi7Rw; {OwuK=qqqѣw 2$UMM222|+nG2+ ^_q]su} ǹ]}4d?3gJ3SOiϞ=h4 N,YǏСCb}رcYfWCCh?hVg#!HǠ?:y~FOKKӍ7&11Q:u$uMFRjj/_q)999-Ī^zicSO|Ӓ[o۷oF~ZiiiAvt:5ydݻWk׮UzzРu飏>ŋ'|2a&=TXX;3`%)//OUYYn]o>+:uz)S-rH7m 7Ƙٳ6lX}_{5ڵK˖-ƍ竡!5khZj^yUWW-_\%%%ڰa6mڤY&KLLUTTT7lؠ{O?6oެӧ[n:-Z[|V\ɓ'оcF ki_jƍd TRR"ͦk}d_ӧOkРAM8PQwYQQ͛8Ifb +**t7< ѣuk„ {qy4ݻW7pK!\]s*!( Tnp8p8 .7nܨ.]}~VU'OԜ9sVҥFQ=A֭ӡC}v-^XGJ5IDAT+nh_y:}}+I/=,wLYޔ޽{+))I{ tS>}4v؀mӧ;淾L-]Tׯמ={Cc!HǠ3gjر={6oެ'OTڽ{3gꗿ=*XBfY7tSPwu~_ȑ#Q;v9N+;;[k֬g}&ݮr=zy444^:rVX͛7+''GqqqإKM4IկTTT:Nϟ׶mtY]pAdR׮][1".B*|{c8ε].Vu_ҪN$(l6||\?jΝ{Ѵid0dZzj޽[6McǎբEC/_pAVRAA:wS^Ӷm۔O?T/+VtjӦM_l6+;;[?яh 4p@5J=X!xyXBWCC\9-_\GUmm \Ǐou%+99Y2ጮ{EbbxI$%<1.mNeOR2tf*++5m4}'a C Zh.***Rff*++vZ=ÑnUAFjjj+''G)))5k ]ڰaC@@@@@@sTUUU&lt@tC;0000000000zH7͈tN8b())I >ŢM6顇RRRR5 k Ju gϞվ}4c f]pAϟoVIII[e2:P#FlnV;lJЎV(mYyyRRRܡcǎJIIiVqqqP\\xdZtTn-:Feuuu~^o^w8[oiӦM*--uyoqFںu,wyGol"ŢT7o[@lH3d]ݻk֬Yϵo> |X{ ~ڦ檦FZ|f!BZsq<˞2eɠK?. [Ng B\fvl6jjjnktS;wgnwo2d~Dl0xFwTk~f&$$#$$qyٮKcXvuʱӁ;\{j|i2WvMuEϻ8Zwud=wߓռw[Ko[S\^{[ A;7xZwq"ӥ/UnT$q{ yZ_Ousݫ׍ށ9;7_=Ϯjח+5!r 텯qޡڻWڻ''u4mQSA:ށs+@·P׾N{2_765W<^zzGpaK>C mO0Mc=yEbƝIQr0*G:qӾx${L;xg<ƻGڵ  C5{ò_'Feu4H{NtSM`r荖?H70jyS:_Y>[;Dod@Za:}BM*=!ZOv5t0ux_pv@ wDc6im7/MNHPiAZj~@Y  ,lySۛoj Ӂ - ( w` -\,k`ܒ-VC ޡ@"h ~7Pp55&ȆJm1Ɛ G]qҾ~QmOK:ֱmI(=96@LnBki}[ܣ:4%iszC9 XC3>=rqLspTh)ztô|m jj=,6}-q~~ZKK!Zj!1Zp[vh !U0RmmK ЖTB%O>-6-IiD^jrlͶZ3䶩 jC,\/\P&Kh&tEXtCreation Timelun 02 oct 2023 15:27:375G IDATxy|Td.T "n"Uh][zպvWջZnԭ.Eߊ a@ $!d0Ldx_3;W>$ 1:)̎n@wBK H78x?b#`H Yi-Hhoi!Xk茺u!;6[6nM.3&:cxmj5t ]:Lw`ʶ)>?@Wb*KSf[ НySp.Zn vڲǺ˄&m= X fv 16Z ω?X m;uAjZG 5H7j[N;sN&D;6v#stdFykhۻUA1:DCrz+tWBs퉄d;ϝjsm[ V:[^c4GZm}+Kjt ӝ-=Bt:^Of<,4&Zњ@m%L#hmN:ǹ3?!Z/uoX&ڦYbBtuX: V%zCC6a3Tb=O#ђ*xα'RݥtgiCQD ѱve&d&^Or+0{clvX:H2D6@'ڣ Qnm6abkWr+DG Ɖd# Mi[@m5L#-tVBt0xl0V7!t6yl2DG ʑJ9BB&rI@-TH;_ ӝ=HǫzckyCVGmʫ^hT0h"#3J> G Сl Ɨ|A9Zن/K@fv<7l"-]%o [B-z#~ D ^Hz*dJ<5HwtkFHt[i[hM/0n &HtM5g [ircc('ܮQaUbI'dHrz47%J<<$՜Bó-W߶HѾJthFhG3ZBC3??T^^ެa4 ۷oԨPm9`t(`G Rx]0igik:"o. %vB$rI󛚚$+5t6M6MCC^)//t[$PGz#D6O1E.HʾHA:.:tQG5tA tt:[0}t`Mu CC=H+H%H"- ҉HIϾ!蒌[kkkԪN<nf8~޽_9:#@4vN233!9z^n\.566&=BK+8Ӊkď ݚ<'y?PnnGʊf)33SUCCjkkb$Л @G 6 1딆#mV&;={꘬,eeeZ\>Z d:딽]w6^k`t.-''!:PϞ=L"eX7*ƺ.tCnoxh]j8Degg+777*;;m"eѮ!:kiGp8tk0`utW[ҍnO':TϞ=r9 VCH丶U~+[?a=Ӻ袋CJv-bKǍ3[ҬG)9=MkZhu)=m?|IҕW^_ԯ_?=:õjժ+++u 7>H+uI'WYY֭[{W;wl ^{MǏ<Ӟ={kٲeڷo_.>[Ӹq㔛;v7C=5k֨VӧOW=;HNn9+v{9V#ytC8p$C$뢋.#< &ߧOW '=z3< &\k֬QAA͛9skʕ+ޓ$M8Qw&My橱[vn<ٳgVׯa:#4vذqFIT Rճl錹>ڵkuM7]woÚ5ko^z233 /cC@Q]]W_}U_ Էo_-YD3fРAT^^zK{ڵk?|ڵK-o۵doh$%ڸk֬Qcc; sȈGFOiP{O~΍cM k]J|{5\w3f;_qȑ#p8z &LBJ7oٳg뗿4sLXB555:묳4tP͟?7?|h:u/^5k$\ eeejhh'͛7/ԩSuriٲecߪ/^[nڔlZJIxmйn6Lf߾}Zd?LK޽{ujϞ=I53rقt*HW_-IoDܯHTTT\Ç#~ RSSokٲe{OƍӬYG?gqFm۶qir?zM: l?~.\(ۭO>Duuu5k;L+V̙36V-Z?3sǣ_ںu_/bM󠲌H.]c=V3g|ui3f***t뭷_իu'4M=#o$x饗h"믿A)77W?񏭿JKK%5ߴp84eI{qRouٲe2e8ڰa8q>-ܢJ 6L_~V:͍͆=81{ tP]Go_|Qq_$%?r͛7O>JJJ4ey^ ַk_UUkj̙ڵk*Yƿ-[&׫+B'NT]] ~tI||An}Z~z뭰jMM9s=Zn TTT]vNeeeZhֶ@xmhhhY CuxkkllsGnlo y{[f<}͛Plei]Tw6oF^P 54AC4gdT=tizf"4#_1b;vl6?o*Lqvf:5~mV `Aډ/Dc0 v90S6 CGզ-^UD4Aځ/8X&uRHn=e_V5WS[a(Ñ,zU^߿-a*,߬Q]}  svv=hIRUm]#٨  r}aUSNGOVJM'g3f u>4p`W0 D ə{19$@A} 544f23ȉzoBͦ 9Vk2ZZ:=H͉ySbaXUV h#aut+>"z*(/h~__ߠO>Rs헑VNN22ZߑRL fۚuN9L^op=v -"hDe3?bT4_vӏTmmj]rp$z233r\ uZfhzq@3J;5_k*iva1Ͽͪ\Ng&M:ZfP=>;4Hpgt=z_wP~͆>S}zNyf8!%+  E"GND]]z/ڼydϔY IDAT@ب~MśhͥwZ - [/(-1Z}{鑇TEEeXo@mN=E4p@VH@ll6 Oluv]myIWMt_">O=ں^ob\i=~k}W!xm p5‚f4*;2.uHϲkRw~xV k͵?˴C4niȨ/%B$ &fkNԛ2+nr=[s=-NN?^ztH@ݭpG/ٌC2% NA]ooϋ{kd*ʫ(Iv_~ˍs5C+vJ}fJ8@wD6nl-ٌ^wKFr gm5u{4l`?P6{?F6Ҋ=Rju gH4"86}X xZU8#8tlMм污wWyrs^wQmM&O( ه*h 4n )b3l2C:4Pdz̩Fwh^.ްU 5tlVQ2Yzyu~Amz8jLC}-nHl)bG h0u#`x(WWר\O]GMAm1 ?%[O^WKKU}&M_W@4 )bl2|uDptwnV&g&ܦ):7WvcC#ih+_hMh0uui!PwI٭nwd5Շa*W="66-:.38&e004H[q'%ak)m)Pm3FgĜ%$J; E†)8TOq24 DFrAu^@(GǡqZ5q jHAR!lu<ɎC} KI!H@xM Q1uͥ!Fhm !H@x Ôau<qؼ푦"H@[  E ƑNvxL%5ARz%Ðiu6#4P'ݾjHAZ  14Pb"H@4( :dǡffJ4Zƨn"BB/=>qz\mz3#twiH_PHvx -H@bV~;dA7ޱǡs|<6ۄSuϟd6t5ihu<ɎC0"N= ЎZ3l]P.dq_,  @8&d z:Te$EzJvxLyqC; A:MoĩCN*qiz9ux+b8 ]q8?Pb"H@ݭTK[\x[&_ z j@/z M^3@ iЄ/ M5HO=V3'@wG P32Sj@lih+!,MɌo\]^kyv5F@LiHZ6;H̆S5 64P+ebnmn*= 4G8 &LӔ4둽-MST;`WcSVdkni<̖Wn;eih+_>_6D'j)h޳3.zo+;gpkݍ$qq0jj~j9z E܍ iW:zSCߘ۫(U-z}=Ԯ\4T/oKIG@eИOW{DNںa´X@wBAzC`7__;Ёm.MAڧM ARY|aKthn4zdݠ˴?S5յҷ 0j<8vrkMT_Rv38Ғ1W}6Dڼǡ!C/FՐJc{:*wFe GrlMZo5j{c}]?XkP&C4JH`6MSoM}o*ihv?Nߪqj^j^4ڦ }Xudy@ ;R޴qLW]Wv:U dxKKߦ-/qX5ԾQ>bM=7nS {~/ {X<@84YC7PmMJI.[nWw+oӉ wVPl Fd^ WYNgቔ|D+وu|mml)ǥ_拾w>4#Hx׳ziOzP{Jʔ+G}fKIxڳg+Wlnoz Ii 'ԫ?^Қ]iP^^z!ao@m^Rپr}C^GM44XuK~mKWK7woWJUU鑣=sSR}CTy<2ti=uᴜn@"HURAIfZxlN=©]>WuukdٔT)GCʰgȰ5_gVSG.WU[W/y.<.=1}'[~B;e+mr~=ljfc]^A_jRmMjk>04iC Nj=:`tS[/ݠ[M4n U3el;J5Jk掐4"9 ld1Ur`QSQ*95)#]^)SGG7RiH;݌v1xИ G(33S;tgi@VF[>(, H78HSjE}4i4vwt-[ m'>6Z.hiiLz=5YYپn;ztkعCivp4sNz4}vݻ--նmj -l6ƛڱc;m^wlo)H/!0fZtM2&JKh=Zn}tA6233nQMm]r\W%<3Q55[vǨ҂a2MS6M\]=*PUWTuA566vt3;5ө={g^ի?Kp8$Q  _гlZ1c.\x"p8A@yvnNFҒ/ m \` $TFx`ihAPH i4`A X@, H i4`A X@, H i4`A X@, H i4`A X@, H i4`A s1:4m4 {BƄ t;5: =@뮻BtCC.];Ofҏ~#a_?۫]wݥqi3gj\2l?ͦ;CNZ h 4s;?k͚5*))?O]s5{1w\W5׫۷kŊu3duY:@kPtsgyfغ\6lC=N;MEEEu6MgOda5~_|g&5ߨQ"zW%IZn>C\2/7|DxsΠumɺ+ŽP]]]SO=5,c袋kjjݻ!?R0 -ZȿQC+WK/q^zI/Y tsvq{21K,ѱc9F?pO? / ڶvZ]uUz'uWzHnݪO?]{lIJQFD>9Rx*~i}璤wyG֭ĉ?= n/ Xt%Dv'zVJG۶m Ҿ뼼=W]uUeff&|H=#1zw߭ٳg't [绹O>QzM͛>!C0 '/ꐭ9^#t'J;nnŊa?|p 5kΝrz!C-znw#5(4[}A!A/nT(((В%Kֹn曒C] }e***ru Qի9`m= =# tsl٢:ݮ\O<}mٲE3g.䒰/-e8S4M]za [[[۷z-X@7oNZNNN9唠u;N_~y_sԨQ:uWp?s>=6nܨ &?^yI96o_~$'?}tjرQ4R ŋx^muƍj Zjvܩ{Ms"Hi>7߬_׭w׮]ꪫT]]n̓{׭[_~g4m4viuZ`Aر) uuuon^s:AC_f暰V}Q͙3'l}Fٳg~+tM7ݰיt[ov/QG:Jw&Hii M,_\]tV9׫^{MOzZ˗G n_ >|xܡ˒umEm:z[9x~-\0b ђ%KO|Ayan-^X+Wy|QQ &yKRQIDATF6MSOwܡ\^xF| 2D*//ƍj*$cꫯ4w\-YDEEE}hmXCoK.QAAf۶m۷oҿv<ia9p[qe5kɓWVUU4o<-]4h]QQQY _^^V^=]R$$wWoso xuf@i!y(, H ij^{ni4`A X@, H i4`A X@, H i4`A@\˖-Sqq7w՟'7LkĈmoG֯_zK_|v{}b}>vvmScƌu]iӦY|Xz] 5[˗/ 7ܠ7x);;['xnvC<@>>K~nw5;Ŏ;Xre|#n)/_486_k[o5.]'O~x""O~kcC;>VСCi{gTgc͚5ĦM+Omםw .}s~6.\V*l`??я9S'PD`?x<裱k׮8~xDDlذ!^xطo_qx{|Xzuڵ+Wnf}Ez_j1<<]vY 7־m?;/nƸ;cݱo߾Xre̛7oL;[+w}wkO}mZUW]~{<-G{/-[|T͋/| nݺ8|pq'>Z|ߍ;vsO+:="Hw#?~߾}9m3L\s51Kcpp0"".\j5v9̙3 ׬cΜ9q饗vw…G?~Cm;qGR_Wf͚kɓ'Gݾ)i @\qaٳgƍ㩧/c=6JYfERJ2&H=Nf DRj:f'O y###ݸqc}qĉ+:V[3.]4%Q}u X"[lif144sOqر+/^z)jZݦ/V:ijjy{bq/~s{YqюBtD{[8ǎncf.AhK??,Yk֬|+z1>~|_ /0>OFD#"رc_:XdI 7|U_tN۸qc]6,Y]tQqꫯƟ8;cɒ%| .¸[cܹSOu|Iqȑx׻}}}qX~}Z*>EZ/8/^q}u-˖-e˖ũSGl۶-߳gOs=o|#nxgbcu]o;֯_菂TW+}= i'm֭[V1k֬زeKx㍣!ѣ6֮]ñ}k-z/uŻ[g?Y8q"֬Y|;ñ~x;;n03;[/>|϶doMg5_^pW_t4<<[lŋlj'pnӦM裏?>Շ\pAl۶zDә[#O-,eZIr3(*^zi> ܢEbѢEE]+Wl0Ui`͟??n/r<#cMa@SH0.Hm iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@4$ iH H@A@k/tjBiWvYntO_4JeJeU۹HB:@LW S*u,{R 'kJl{T'iw3݋i2ki~LV-H_RZ;"Dqi~{5M6E7g$3""N:ujkD?NZ^LER Ipc$"N9rd 0~qȑ-q:.\sXjf+kE:4`*g߿Vf`` 0 DVء*΍tJLAjui 9q_FZM?bZ`Zi @U*;wnk?q2VG28fϽEn]xIOX _*XG ѕ̲C~cpp?Μ9#LPVcܹq{wq<z.zа\`6A:ߦUpn2]``shDę3g8dg`` ̙oڝ;wW tvt"xXxB^ i;UJЕ\ӇJ"iUj`T*QVGtZ+fϞ=[#Q\O (jSz݉(,gC3[WVsYe1p%,ywu__19LGj'On;r_8/>Xx*;F>8wtj]_˛72a|t;dt:caZ|_qR>Cr@8jed?V2!fMd]VA6;ܲlۑx{HHP܈>">`(tF7z]}fR] ݉|`.z+a$YC͆xa;zdn#7i`i0af:kI ۓS:~o0b=h]ѐv+˭΍7 ڥyȰvnj\<6y1 ,=(oSBgSCtOJD֕FU *@KbNzz) vX{zIot]Jo(n'b4L`u8Ȥ9`"Ld]7dt^Lf]7]aϣLe e7^2msL3hZ躙2gLifz0^3&8 c'8uf\Sc`?Z~a8IENDB`Diego-Ivan-Paper-Clip-c4db98e/data/screenshots/04.png000066400000000000000000000706411500377563500223170ustar00rootroot00000000000000PNG  IHDRnbsBIT|dtEXtSoftwaregnome-screenshot>&tEXtCreation Timelun 02 oct 2023 15:29:30 IDATxwxTUL&ɤ@iB tEQp*bϺmǂ]ʺۺ +X@!.ŀ @ L*I$3)7e&zy9N''+hS+qM@r aNtC:@اt?:m$OhmM>p]2%2Pi7`<`8=cx :5J{{yzԥ5nm9dM-||ĥ m2PŰu613g M84ln3a-ɦTcښ  |VbSh4<7tpp:uAklo;PM}} ۷&?#]` MА\~U}x-|1:_qhu׺Z}+}-kJ7jA-6>uxShj݆vhL6 >46D7!_s0]@J+@\omh&XbK F%X+[suraM!vu7GCU i=չnSa:ac(: ھy 8ג/(uu9tK膶hڢ@ntbc]_B`ЖlZ馮k@m4L7im$D u"@i8NsStзJ*6g}u95ט6x5=kj_w6=H/_+X[s;urvRa>|գ!Z=H[Z ^W`o]̬at@ۆ;Kyjo.7YoDS7􆭭)a_6(7$48 NUѾvkvV>7Gnn( ]+DZWO;0\W NG5CK'3wx .T5Eͭ*F5|]]CH =Uf>ܔpz9$UId.>uoJ"tn5WBC%w޽gLLxŒe2IJ0z"m˵nl+rrrHPmɀm0--Bwjژno7kvQVhݻܹ fTUUJNSNgcF]h?ffBCC*I.((x5''g2Ck%Wka橎2Z%p[ժ^k٧\tg?q UTT4N'ZxNi}}TX3dK|*A:5䔆醆h_I?茌_Y,JKKUUUը88vY։ yyyt2}4j(m߾]}?;vx^?Ə[,׿ֻᆱ?3ю;}"""ԡC#-;;[}tM&Lh="$$Q76TXXBBBPKm{jRBB$髯ꫯƍkm? :vTT{=͝;WݻwWvvV."-^XguVn{P]g/BC Qzzo֮]fM8QO<|rI5vX-[L%%%>}RRR4c }tUUU /ԼytUWi߿ƏN=2eҴw^1&OJ׿ܹsEFugiź 5|mݺU=0{lO jC޳MݺuӲe4v^zOe۵b 9NM_111cǎyON&FN=p !5\Ld2U.SNL#Qf%$$hذaZ~6m$ͦɓ'k͚5Zr׿j˖-u--;;[{Vll~ip\uwYWϞ==}w﮿/3gNC\AWA jI/\̙3%I}mv-˥!C(11Qyyy֏3F'f رcNޭ#T_?mO@0iiCz뭷tA7Ν;ݛhSLnZ~ 5uTWɓ5uTM2E^z6lw]}]YYi6lu}9<ݮPyO3g$^Pkب[{. nݺ:rddL"˥~+--|0=9k,uYڲekOyձcGI'[|$i풤;wphРA*,,Ԟ={}(==]?c~ܭ9rD5i$+2ʪs]Cqh ;vxZ 4gرޖuBE:L9rD >|f͚U^{"##f͚j2|ygtgjرZb6nܨ$Gz衇<7-ZHk׮Մ rNH{izh"%&&*::Zwu !wZ|^~8|7ɅjĈjvUs+RIkvc8p@ݺuSt:~PII';k|pNtaEEEƷ|=Ζhc]S[knLJ7G}$Izw=kܹ u)((E]W_}U1bN.\iӦתfӆ 4vX8p@7|={1͛7ONS7x zKRSSuey~Yի/n/֖-[dɒjV~~fϞx-5wٔ)SM>]7xNq\uwSkDs|>_'XDqee[MZu(>M57טwBNM-Ә>?>44TwyfΜ٠ݻWz?s=Y ږfAQA:&&Fk׮=KMCk<5zNU&{EZkG}Z*=z[jq8*))Qttt%Z imY-+//܋ ͨ jlH2޿DeeeXw8m :4UA\VXXXlAq8l QxxdX<\.vϣ !á2k Hi4`A0 @ Hi4`A0 @ Hi4`%\@Wd2 `iAtz Ϩf ݮ={b={¯-?iA> hc @!H8-"HmL`hi4`A0 @ H8qB].Ngjh)@Wړ'jȐ!m߾]ڷovz-[hVff֯_#GnkӦMR||vܩ޽{+??_WjjSIRnn{==zTEEEztqWNNk.}7ڹs4rH9zɑnWNNۧ*>|s켼D7nTiiZ)55U&LP\\tRedd(!!A۶mӄ k;kժU^ӟOw}"UUUiƍ:sta}ᇚ4iR/;ih&FUW] ڴinuU}Uee~eee)&&FݻzluAw}z饗4p@i2*//ץ^GR]vTVVJKKu=zTƍӞ={g%''tl\G@@14qu#M`A0 @ Hi4`A0 @ H@W?>V.*..N#Fk6d 2c EDDh:~:t蠿ozeZ]=4Y,=ZWĉUQQ@W PAHZZzԨQ!CJ?0 @ HhWl"˥76xK:$Iڳg>7hͪn…ʶmzeժU nΝZvm5k4=O?wt6}fCʞ={k._^Zb*++5m4*11Q۶mSQQ}bccEցxb*!!APEE6mڤ0friժU֭MW_}U%%%߿:v쨞={8rhҥ4hL&mۦrc>|XW\qE2" ]IIIԩSuYg~ 7ܠ)Shȑ2d֮]cǎs:3dX4h w}:3 0@;wСC5d >\YYY}$=zT fShhQF)==]v]2>|:w-[(99YGV" V IDATQQջwo 0@eeeСBCC5qDL&M0AX,r:ڹsFΝ;d2)%%E*..Skɫ=5X쵟{ 95wOc233l8-rIvʴ"urEDD4xСgLEaaaMg[УGY,L- Q111ZvYl^Syr/kY^e5]^|5f}ѵZ-!ZR-I>yе0 @.8qBEEEr\!%eUmͻR{TTTx˓nWIII}NÇW+/--իW<ꔝ-ө]N+HhJKKj*}TzzVRSS[NGW_}d2)99YWDDu >\Ç׶m۔h?^}"##i&%$$ȑ#r:Vttvڥ]r%ڼy/ɤ۷+&&F}h"Y,)&&FfYVU111:t萒TZZ\uE?u 7hݺuZ~tUWiŊڳgRSScEDDѝwީ?Pȑ#KPUTT }k׮ܹvޭ#FhРAVaa&LN:)::Z=zСCzT PZZV, (EEEiذaV~~"""dەX%$$(**Jgq"##d >\ :tgr?~\&MRTTtΝ;+%%E{jU^h***J:uR߾}5x`ũsΞ!4h Iѣ4ȑ#JKKSAA5j(hܹ xWE]t٣%$$[n*--FH6]^^t"vl6+))Qqqzwޭ^z5F=zT ޾5w@b;@mJJђZ-JjTZnl@ H@***VVZZjeڷo_kV } @>9rDъAݩS'L&UTTҥ\.,, JKK )iiժ={fLTTTpWSiiUZZ38C:3\{- ^xa̙w]͑=i4`A0 @ Hi4`A0 @ H\.>^IIIںu=\}ݻVʴo> 2D믿^z %v -d2Cs_ڱcfΜL&wy6l6lؠpK۷oWZZo߮|PfYzd63FǏٳTƪJ>=8t\_M^Dz6fWȩԼ{fkh).Kd۵wVAGX,2ZWbbbvڳ$$9$ٽSN^ײj.*kFfC4`A0 @ H<@e-\PJKKS\\***n:fS~~eە\eee)66VfSqq:v쨐;6ЧRiFdduN:i֭r\:rzO?T*..ֺudԵkW)66V]vUYY;~СC*)) )A@ѽ{wp ӧ#I߿sU NG0 @ Hi4`A0 @ Hi4`A0 @ Hi4`A0 @ Hi4`A0 @ Hi4`A0 @ Hi4`A0 @ Hd2 B VF@[D  B IE)))r\ dRTTT wP"LÍTfttO:hC-ԧ3 i4`A0 @ Hi4`A0 @ Hi4`A0 @K1ͺ5sL9-\PtJEU+5k֮]scK/U~Çk͚5Z`vU)11Q~uC:z߯ŋkٲelZ_Y۵uV}UL|M=c~4tZO>7{[lOtyPh}z-I'w<ӵVzz֯_yj2d6n(:5}Q~<Ǐ׉'):uj'ݷoj=]%m-p߯Uo߾ԦJ]V?!ڀ \R_~eܽ#66'Tm-lذaՖ٣5kT+{u{+**uxW4ac4rZ5b]qݻձcGl6;vL[n7|>HtEg5\/X;vW_ӧgϞ:v6mڤk۶m~#4c OlڱcVXwyGN~ =cԴiӪ-XBǏוW^)swhl?zƎ~[oСCeZa}?]s5=z $ժ[jժU~ 7PK.D?׿ըp Hh0`:t .{[fyq>}pەz"##յkW;VvjDEEЬYd2<ڵƏ3g[oU~~~Χ5j#8}*--Uii<.&u /q)$$S>f3F'O֝wީji޼yȨV~g2B G\ve>C{]|||߭ڠܭF{B7ժzZȓ\gϮk:t~U+3r>q l駟tqUUUnذaM1qZ-33SO=T B4Z4Yfieۛ'N|Q-YDСv}6[gϞ=za&'Nӫm|rZJƍ9) 4l0Oϧ5dW\_lYPo{/6MaaaV>zh]pZd$i0`@ Աc:`ܰa{=]veֽ{{< 4nI/Rk׮Ֆݫ>L7oVqqqt-ܢBs=5kV={i~pv7Ky㏊i#Z@:;11ZճgO|MM!^gl6M7Tm }%t[nW_}p=4iYd,Yw}|m98}4ڣ>Zm4{zMzGy3/X+Hz_m]FF^ǫ&Ok]IZ%i޼yuєެ\R.KC>fΜ.]x{}=O ꫯ$9G@8ٳGsJJJow?A>ץh̙z.6ձcj T xn7|畒Rm]XXg5 1~8յ"!!AԩSZRᩕZA@8qDQ);z ֻwֹ瞫?kvM7O> G]\.uF~=z3o|Z}ي3 &IfK/?O~oK-l{h t, je[lW^uku?<<\v] ,Ђ $I;v_￿ڶ 6pK(--UNNNV^^3gj׮]o|ZHxw;4gϺӧ /Ԟ={yiѢEr\uZdQFg}x㍆ f̘!Cx;uꤳ:eogWx3gNUӧƍm69rDVUGmNNNCOI,GDDO>޽[ڵҴzjM:ָ:ꪫ|n_&&I^u]~ն ̙3}gyF?\.W:N+WV &I/]khni6tP :m^{5-]Գl27v]c{X,:3tgСCڴih7|SFv;,֔^-H9ָƍ{ػ/_^ SN믿^-n5KLLw}W7n,/~N:UWuh ЬJKKK/zxF~~y].fZugǏ 78-o]oTσCOk]_uX֭fV6l0%%%z Tw(˿/VV\\ {O?m!h$'No>mڴIo?s7xC_tjz״zjiƌW\c*++KIIIܹÕ/|>jJKK#h+ջwou]*..VAAo߮~Aϧ5Addd깹ڹs}j{~XCcƌQqq,XPot{ܺuz-?UtEnӰaԳgO>|XK,+r]r%իW4\ƟjZo*wO>1{^vBNM-ӘkZE]gyZYFFT#FhڵgIIrH{M^/˽,ey\vy{?R7];i4`A0'O> t50Zi4`A0 @ Hi4`A0 @ HX]t:] f5*trr"ժp @t:p8TQQ*9L&L@W @n#NBBB@W4llVhh$Beeer84!6t*<<\:ttU@ WxxUQQAn#j%DpСV+B ntU@+Vxx8a H)MDpСBBBr]ԁ \.N"""] r: FREV5bZe0.D0#H!BCC+AƊ<@D2o;A:Hb oǃY=؃PS5k"##e2IR~~-[_?.hA.K&)Հvf…0]Z`gdUVV&I3f~g;v, uhiri׮]襤$nj0 }q1bRRRt /]ntW_֮*@Pkij͚5ٳ>|ںHzetg4jINNVTTƏ/dk Z*++uA}ǁ @ТiL:t,;Y,>|X;vT^$GpRXXٺu딙3gl6+;;[]vV-ZL͞=[\rwpƍӧ~?Xou*!ZOkɫ=5X쵟{ 95wOc233l8t:t:/w}j ܹSW^ye>ȑ#2AØ],I6IIvԼz,.yo}!'$|hIJOOWbbbj@#H;D0@5C}ݧ+WJ:yO<BaҤI/j…5kƍ'ө{L+Vt5@i&Mx ͚5KsΕԣ>K04B4 p !#ta+=oڷo?)##C_|f=:vXb/+++U@C> wQ ǟB$Fŀ !HDNkN.CxfՃ008g>n6*3,* " DDc$IґTrTY)jKeJ9]{z-O߯͞=[K,7߬k*..N\pAsU>}4k,EDD駟V^^^Pxb=sZbN8󻚚TTT'|R O:~_2m4m۶MsN=STSS_Ԗ-[ԿEGGK2_۞zٳgk֬Y*++Ӝ9sj*ϟ/ɤKꡇҿۿu=@chGPSS%KoUuuV^$]pn7߬e˖JzW4yVmذA w;*,,TqqV^9ү눍ĉA/Tdd233%}H$""BTXXÇ,u|?>*$iʕ:q~gmڴIW\q'Ha8KKKeZtflǷ:oiwGӦMѣ=DVV?;;xL/BGU~~֭[>LׯW_}%I^|]oG$ũʱ/..M-'iN4c vXz7}vk*++ӫ*_;vWd(//OW^yrsss)??_O< Xz_,u޽ Ig{=T__,mڴþcĈӧ^z%ǾÇ;&!!AW_}fΜ#G8G}JGO~z뭷 e^o[뵗EG{tHC'Oѣ5`ƪYk׮U^^Ǝ+ŢT1]SUU^z#d2:kUEEEm?믿ֵ^޽{+77W)))o~YVz-u't[A}[N;wV\3ghܹJMMUUU֮].9v^z%=ݻw7Lւ tE't:u!CW;wԌ3okʔ)S||?VccRRRmӺ3wRf!           " {N vA:D%%%  @@@@@@@@@@G vBA:LL&=[DS*))QRR>/++K}ĖtKt;vLÆ (::[a(""B:~ (NNN%IW]utw(77Wd6uuiƌ9s禦n}ݧӧ+55Q6k,M0A<.ξd.GCCUQQ?+55U>۷oJJJ??ڴic_5khݚ2e$)**Jھ}VZ={ob$[555Zr99 Dn:޴idX4p@IRtt C.0TYY)I*((_/I8pjjjeGرc'OftE fب7xC---K/T#Fpi{q[l6l6G###i? \1#ddd@+-NKKSllV"##&IJKKSBBV۞jqу lVUUU_%**J d vSdHK.D_u}gΜQIIcxǶmt 7^UUUw~egg.=~j͛uubN7navm[vvz)%$$P׉',Ig)^w&Ͷ1f2ܺ}8f̘/jkkp9]0 )ԩSpVC$Gs=:\fYfs$HLLT~~IZ$5;-soi[N\mN|#/"܅hJ_ѳpѻvjUVWWA=A|r=ڹs$E/>o+i7rrr!zŊZnOlg}V;vv3Di999Zh#DYFӧOל9sd.\͛724B4E8,:{^|cL9sҢgyF[n v3B4o|x' Г*^x awUNNn=쳪ѪU4uT1vґ#GʶEn M41!0F:L555_~$UWW*++ܹs_NʶYbE!N폏7߬e˖JzW4ydIRttn6-YD***Ғ%KGEEҥKUXXb-\Pڦݻwb+taC>$;:W^9q~MM,YoVZztvxЎ&%%Pl6_f$EDD(>>^4h f}s p)""ËVUҐ!CI;vФI]O li4zh%$$hiUs[JKKeZ]h;taÆiIf̘#""d6e6[VhfY,V卍:s϶mٲE ,jZnS޽ھ}^{5W_b:C;z;Sڻwyeeee8 H4zh'N8l6kĈ*,,ٶ})66VW^y={HF>}襗^O?z >1'@TDDbccիW/5J?nv-]1tYss֮]<;VE1b$^|,XQF)99Y>zmذAȑ#կ_?=㪮vbo ?OO(IR^^ɑ$3t6v[oUztQ|X?CC^x}vd2)99YK}GVV:jYV}'lڴIUUUQBB_W$Ѫ.0c6>H2 C---:y򤚛;{ hIfSaal6[ԝrUUUITQQ׹fYam'@GtRMN-]=}NKOLZZ;sL.l6l6t~߾}5l0ٳ1fR\\MzUVV .Pnn233"EEE)77W&LUW]X8qBW]uF.L)))裏j޽nAcǎե^ ǐ~X}5\ѣGZҢ'0 ֪U'M ]~Ptttv>\:y$)//O&IŒ[nE555ln-ε2L2|ūQiiHI2\gm 3>X[555ZrZZZjkkkF>*&&FӧOO?}iСOUVV֪n{^~*++5tPxZzZZZJպ5eZUN;CL?^ڷo*++ֿk.?Vee$j5b}Z^l:|c{ɓ% Ea(""BcǎUBB}8P555 {Q;V:y pW.((_ﶞ }ᇊ_[oUk֬QJJ9zZEDD(##CӕW^$OG$ ftnqب_TO>QUU맨(oXj_ddZZZܶ׸z}2dTf8qBVzzۧxedd(11]?6 3O5m4 6Lf1kGDԻwo]tE$ɤHO *//bQZZ#׻ITTjj$iРA2͎ѯ_?:ƃ 4HzReeewmgAAFjnnVAA222+wet zw}ӧOkر2e PUUmۦԤ7*;;[ƍScc8B]xᅚ9sVre]֪7jjͺdXTWW7I×Xeff*))IfYڼycw[wmѣGu7>$GNr6{nݏ?l=SJHHPaaϟx =Og)Qvl;c3u?sˈse1cp)"T!0Կ`78:u.\YQsOMNyyfsHh,11Q$Jj4έNmw3þY"!] s޵kW6=B9D/_\O]2 C>vf".rrrh"G^fO9s0 -\P7ov3di'h p!m Yte+|rǘ9s樥Eڳg//w߭KPZp㕕<::Zv,Yiɒ%oY˖-SUU+hmƊ g->-]TGQEEl"ժ+""BTXXÇ-bhG)))$ y w}w^GU~~֭[>LׯW_} fVJKKoFettf,Kب3g,llΘ1C__TT իWlcBBc[ZZZctW*77W=O6г0# ZJwq 'NHFg65b,?L\MYY땕i;Tqq볍ŎmO߯g}V>&Mv0aݻW+WwܡaÆiє)ST__zmذAȑ#կ_?=㪮֞={*`5JzG[Fiii2Ljnnڵkcb(55kȍPllzQF߮Kflcmmvءy /T\\޽{+77W)))o~Yvzݕۗf7ǘγo?sˈse1cd p<4OS/Vss; 6o PTT4eEDDhϞ=GU9s(;;[ںu|AwSIIƍ @O>L&.tMJMMUUU֮];o6ljjWҤIDATѣGuAꫭ®6&$$hܹ~A .bܹs5rHZbv@G*//w Uϟ VRfqnp؜>m9miiݙ}m)o3t ՒhҤI>!Hn_%\bB42dӵ~%%%ڵk,.AFzYfiѢE*//׻ᆱ?iСC5kV@@@@@@hmDxÇWffdZUTT;w\_||.曪t_mLT7HIIi&UUU)&&F ^|Vk@geeСCnW;dJЎN)YjjUUU%IjhhPEEEl*,,0`utbݾz]MN-]=}NKOLZZ;sL/kl6l6t~KK&N(0T[[&GY\\^$%''릛nҡC$IǏW~4a5JNR]]+I LHMMMJNN 7ܠL]|:~ 5J]vRRR?>}Z&I&ScLLJKKߐtFgñtع Ү A m?CF_6u);UXX}үۧ oի(Ӵi׿U5\۷릛nƍUQQX544h߾}:t>Sue8Pk }ᇊ_[oUk֬yfs U]]qɓ'KdX4`/O $uiC}}K 2Dɪy4興j_ccJJJ~V322GE~K5h KZTZZ$)--ՌfY txL{E]$I2LTYYԯ_?IRddc,W}}}g TDEEi!=f]0L%%%l6V7ovm6p WUUUy5n8%&&A7nTsssqFeggkܸqjllԁ?:njjjz߿_ٺ˴~z.SO)!!A?N8f!H:O@f/a6ݬ[}:ǂi8f̘b3 Canb\םGo7溻-6P1 :TǏv3w!Z:PjjjZfl65({ ަ  4馻q<}/$i_dddg?lL& >];sѻvjUVWWx ZO}/p^StHfr9=s^|x GRKK/^} =Qdd?ׯ8sXy#p#̟7޸+OKQQ ͶVOrrr!zŊZnOlg}V;vv3*::Z6mCQQ ٓ潐JA=}ӀLyyژ*)''G-r5kh3g … y`73,bbbT^^Vܟ!z` :3Hzjq70ӱ 5$5Z B)XѾfj.,..>_uwWkop۞)-]N_:GTyFEE񔔔_bbbniiԩkedb>}Ekb(>>^/~K=hhÄf>;H+8+w 1ׯ_q||dD 8 |MGnii3<-[tyB)HGGG+..N :~v9װ蠆KzuFE+**歽{yGWR^zI ڹs/_~^޺ukP m6eXbl8yS?>Ir s7fUHOw窳@ r\f_Z\N} tA߾}'DEE1LHJ:alJNN?mݓN ]MGppc]ôM=d?uT:kdǹuuijeV_)":f 뼔>c :Ð{oסcm.ǹH#g 6]v>_r-tU0;$3x8s,=ϮC9tGb֝f4Sܔy[Z:EH2nPdiZqH#wAukkXv׺ !sJ=Ү+mzqO@"z{ IENDB`Diego-Ivan-Paper-Clip-c4db98e/io.github.diegoivan.pdf_metadata_editor.json000066400000000000000000000052421500377563500266150ustar00rootroot00000000000000{ "app-id" : "io.github.diegoivan.pdf_metadata_editor", "runtime" : "org.gnome.Platform", "runtime-version" : "master", "sdk" : "org.gnome.Sdk", "sdk-extensions" : [ "org.freedesktop.Sdk.Extension.vala" ], "command" : "pdf-metadata-editor", "finish-args" : [ "--share=ipc", "--socket=fallback-x11", "--device=dri", "--socket=wayland" ], "build-options" : { "prepend-path" : "/usr/lib/sdk/vala/bin/", "prepend-ld-library-path" : "/usr/lib/sdk/vala/lib", "env" : { } }, "cleanup" : [ "/include", "/lib/pkgconfig", "/man", "/share/doc", "/share/gtk-doc", "/share/man", "/share/pkgconfig", "/share/vala", "*.la", "*.a" ], "modules" : [ { "name" : "poppler", "buildsystem" : "cmake-ninja", "cleanup": [ "/bin" ], "config-opts" : [ "-DENABLE_LIBOPENJPEG:STRING=none", "-DBUILD_GTK_TESTS=OFF", "-DBUILD_QT5_TESTS=OFF", "-DBUILD_QT6_TESTS=OFF", "-DBUILD_CPP_TESTS=OFF", "-DBUILD_MANUAL_TESTS=OFF", "-DENABLE_UTILS=OFF", "-DENABLE_CPP=OFF", "-DENABLE_QT5=OFF", "-DENABLE_QT6=OFF", "-DENABLE_BOOST=OFF" ], "sources" : [ { "url" : "https://poppler.freedesktop.org/poppler-24.08.0.tar.xz", "type" : "archive", "sha256" : "97453fbddf0c9a9eafa0ea45ac710d3d49bcf23a62e864585385d3c0b4403174" } ] }, { "name" : "libexempi", "buildsystem" : "autotools", "config-opts" : [ "--enable-samples=no", "--enable-unittest=no" ], "sources" : [ { "url" : "https://gitlab.freedesktop.org/libopenraw/exempi/-/archive/2.6.4/exempi-2.6.4.tar.gz", "type" : "archive", "sha256" : "7d1b0e96b848fe3fcf5f5bdb353cc82527b6629e40ed838efe9ffc9108e1b99b" } ] }, { "name" : "Paper-Clip", "builddir" : true, "buildsystem" : "meson", "run-tests" : true, "config-opts" : [ "-Dprofile=devel" ], "sources" : [ { "type" : "dir", "path" : "." } ] } ] } Diego-Ivan-Paper-Clip-c4db98e/meson.build000066400000000000000000000007311500377563500202500ustar00rootroot00000000000000project('pdf-metadata-editor', ['c', 'vala'], version: '5.5', meson_version: '>= 0.59.0', default_options: [ 'warning_level=2', 'werror=false', ], ) i18n = import('i18n') gnome = import('gnome') app_id = 'io.github.diegoivan.pdf_metadata_editor' if get_option ('profile') == 'devel' endif subdir('data') subdir('src') subdir('po') gnome.post_install( glib_compile_schemas: true, gtk_update_icon_cache: true, update_desktop_database: true, ) Diego-Ivan-Paper-Clip-c4db98e/meson_options.txt000066400000000000000000000001211500377563500215340ustar00rootroot00000000000000option('profile', type: 'combo', choices: ['default', 'devel'], value: 'default')Diego-Ivan-Paper-Clip-c4db98e/po/000077500000000000000000000000001500377563500165235ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/po/LINGUAS000066400000000000000000000000741500377563500175510ustar00rootroot00000000000000bg cs de es eu fr he hi hr it nb nl oc pt_BR ru tr uk zh_CN Diego-Ivan-Paper-Clip-c4db98e/po/POTFILES000066400000000000000000000007441500377563500177000ustar00rootroot00000000000000data/io.github.diegoivan.pdf_metadata_editor.desktop.in data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in data/io.github.diegoivan.pdf_metadata_editor.gschema.xml src/application.vala src/window.ui src/DateRow.vala src/Document.vala src/DocumentView.vala src/KeywordList.vala src/KeywordRow.vala src/gtk/date-row.ui src/gtk/details-list.ui src/gtk/document-view.ui src/gtk/keyword-list.ui src/gtk/save-changes-dialog.ui src/gtk/shortcut-window.ui src/gtk/password-dialog.ui Diego-Ivan-Paper-Clip-c4db98e/po/bg.po000066400000000000000000000240251500377563500174560ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # FIRST AUTHOR , YEAR. # twlvnn kraftwerk , 2024. # msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2024-06-24 23:44+0200\n" "Last-Translator: twlvnn kraftwerk \n" "Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Gtranslator 46.1\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Кламер" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "метаданни;редактор;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Редактирайте метаданните на PDF документи" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Редактирайте заглавието, автора, ключовите думи и други подробности за " "вашите PDF документи" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "twlvnn kraftwerk " #: src/window.ui:20 msgid "Select a File" msgstr "Избиране на файл" #: src/window.ui:24 msgid "Open" msgstr "Отваряне" #: src/window.ui:86 msgid "Open a Document" msgstr "Отваряне на документ" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Изтеглете и пуснете PDF файл тук" #: src/window.ui:153 msgid "_New Window" msgstr "_Нов прозорец" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Запазване" #: src/window.ui:165 msgid "Save _As…" msgstr "Запазване _като…" #: src/window.ui:171 msgid "Open _With…" msgstr "Отваряне _с…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Клавишни комбинации" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "_Относно „Кламер“" #: src/DateRow.vala:34 msgid "No date set" msgstr "Без зададена дата" #: src/Document.vala:117 msgid "Unknown" msgstr "Неизвестно, неизвестен" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Страници в една колона" #: src/Document.vala:301 msgid "One page at a time" msgstr "Една страница наведнъж" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Страници с нечетен номер вляво" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Страници с нечетен номер вдясно" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Две страници с нечетен номер вляво" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Две страници с нечетен номер вдясно" #: src/Document.vala:317 msgid "No specific layout" msgstr "Без конкретно оформление" #: src/Document.vala:326 msgid "Center document's window" msgstr "центриране на прозореца на документа" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Посоката на четене е отдясно наляво" #: src/Document.vala:334 msgid "Display document's title" msgstr "Показване на заглавието на документа" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Напасване на документа към прозореца" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Скриване на менюто" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Скриване на лентите с инструменти" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Скриване на потребителския интерфейс" #: src/Document.vala:354 msgid "No preferences" msgstr "Няма настройки" #: src/Document.vala:365 msgid "Adding notes" msgstr "Добавяне на бележки" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Вмъкване на елементи" #: src/Document.vala:373 msgid "Copying" msgstr "Копиране" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Извличане на съдържанието" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Попълване на интерактивни формуляри" #: src/Document.vala:385 msgid "Modifying" msgstr "Променяне" #: src/Document.vala:389 msgid "Printing" msgstr "Отпечатване" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Отпечатване с висока разделителна способност" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Обръщане по дългата страна" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Обръщане по късата страна" #: src/Document.vala:408 msgid "Only single sided" msgstr "Само едностранно" #: src/Document.vala:412 msgid "No preference" msgstr "Няма настройки" #: src/Document.vala:436 msgid "Not compliant" msgstr "Не отговаря на изискванията" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Ключова дума" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Добавяне на ключова дума" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Изтриване на ключовата дума" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Премахване на датата " #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Показване на календара" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Днес" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Утре" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Формат" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Оформление" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Двустранно" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Подтип" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Настройки за програма за преглед" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Права" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Заглавие" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Автор" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Софтуер за създаване" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Тема" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Софтуер за преобразуване" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Дата на създаване" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Дата на промяна" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Нередактируеми свойства" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Ключови думи" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Добавяне на ключова дума" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Искате ли да запазите промените?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "Има незапазени промени в отворените документи. Ако не ги запазите, промените " "ще бъдат загубени окончателно." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_Отказване" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "_Отхвърляне" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Общи" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Спиране на програмата" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Нов прозорец" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Затваряне на прозорецa" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Клавишни комбинации" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Редактор" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Отваряне" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Запазване" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Запазване като" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Добавяне на ключова дума" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "Прозорец за паролата" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "Този документ е шифриран" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "Парола" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "Дешифрирам, разшифрирам, разкривам тайнопис" Diego-Ivan-Paper-Clip-c4db98e/po/cs.po000066400000000000000000000257521500377563500175030ustar00rootroot00000000000000# Czech translation for Paper Clip. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # Amerey.eu , 2023, 2024. # msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2024-03-13 18:22+0100\n" "Last-Translator: Amerey \n" "Language-Team: \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.4.2\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Paper Clip" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;Metadata;Editor;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Upravte metadata dokumentu PDF" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Upravte název, autora, klíčová slova a další podrobnosti vašich dokumentů PDF" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "Amerey.eu" #: src/window.ui:20 msgid "Select a File" msgstr "Vybrat soubor" #: src/window.ui:24 msgid "Open" msgstr "Otevřít" #: src/window.ui:86 msgid "Open a Document" msgstr "Otevřít soubor" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Sem přetáhněte PDF soubor" #: src/window.ui:153 msgid "_New Window" msgstr "_Nové okno" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Uložit" #: src/window.ui:165 msgid "Save _As…" msgstr "Uložit _jako…" #: src/window.ui:171 msgid "Open _With…" msgstr "Otevřít _s…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Klávesové zkratky" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "_O aplikaci Paper Clip" #: src/DateRow.vala:34 msgid "No date set" msgstr "Není nastaveno žádné datum" #: src/Document.vala:117 msgid "Unknown" msgstr "Neznámý" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Stránky v jednom sloupci" #: src/Document.vala:301 msgid "One page at a time" msgstr "Po jedné stránce" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Liché stránky vlevo" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Liché stránky vpravo" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Dvě liché stránky vlevo" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Dvě liché stránky vpravo" #: src/Document.vala:317 msgid "No specific layout" msgstr "Žádné konkrétní rozložení" #: src/Document.vala:326 msgid "Center document's window" msgstr "Vycentrovat okno dokumentu" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Pořadí čtení je zprava doleva" #: src/Document.vala:334 msgid "Display document's title" msgstr "Zobrazit název dokumentu" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Přizpůsobit dokument oknu" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Skrýt panel nabídek okna" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Skrýt panely nástrojů okna" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Skrýt prvky uživatelského rozhraní" #: src/Document.vala:354 msgid "No preferences" msgstr "Žádné preference" #: src/Document.vala:365 msgid "Adding notes" msgstr "Přidávání poznámek" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Vkládání prvků" #: src/Document.vala:373 msgid "Copying" msgstr "Kopírování" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Extrakce obsahu" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Vyplňování interaktivních formulářů" #: src/Document.vala:385 msgid "Modifying" msgstr "Upravování" #: src/Document.vala:389 msgid "Printing" msgstr "Tisk" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Tisk ve vysokém rozlišení" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Otočit svisle" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Otočit vodorovně" #: src/Document.vala:408 msgid "Only single sided" msgstr "Pouze jednostranné" #: src/Document.vala:412 msgid "No preference" msgstr "Žádná preference" #: src/Document.vala:436 msgid "Not compliant" msgstr "Nevyhovuje" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Klíčové slovo" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Přidat klíčové slovo" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Smazat klíčové slovo" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Odstranit datum" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Zobrazit kalendář" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Dnes" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Zítra" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Formát" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Rozložení" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Duplex" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Podtyp" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Předvolby prohlížeče" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Oprávnění" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Název" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Autor" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Software pro tvorbu" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Předmět" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Software pro tvorbu" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Datum vytvoření" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Datum změny" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Vlastnosti, které nelze upravovat" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Klíčové slova" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Přidat klíčové slovo" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Uložit změny?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "Otevřené dokumenty obsahují neuložené změny. Změny, které se neuloží, budou " "trvale ztraceny." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_Zrušit" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "_Zahodit" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Obecné" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Ukončit" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Nové okno" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Zavřít okno" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "_Klávesové zkratky" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Editor" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Otevřít" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Uložit" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Uložit jako…" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Přidat klíčové slovo" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "Dialogové okno hesla" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "Tento dokument je zašifrován" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "Heslo" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "Dešifrovat" #~ msgid "Paper Clip Version 3.5" #~ msgstr "Paper Clip verze 3.5" #~ msgid "The latest release of Paper Clip brings the following changes:" #~ msgstr "Nejnovější verze Paper Clip přináší následující změny:" #~ msgid "Small cosmetic changes to follow GNOME 45 look-and-feel" #~ msgstr "Malé kosmetické změny, které odpovídají vzhledu a chování GNOME 45" #~ msgid "The app can open now multiple files in different windows" #~ msgstr "Aplikace nyní může otevřít více souborů v různých oknech" #~ msgid "Russian Translation by Ser82-png" #~ msgstr "Ruský překlad od Ser82-png" #~ msgid "Paper Clip Version 3.2" #~ msgstr "Paper Clip verze 3.2" #~ msgid "This new version of Paper Clip has the following changes" #~ msgstr "Tato nová verze má následující změny" #~ msgid "Czech translation" #~ msgstr "Český překlad" #~ msgid "Better rendering for thumbnails" #~ msgstr "Lepší vykreslování náhledů" #~ msgid "Better cache management" #~ msgstr "Lepší správa mezipaměti" #~ msgid "Diego Iván" #~ msgstr "Diego Iván" #~ msgid "" #~ "Version 2.0: After a three month development hiatus, Paper Clip sees its " #~ "second release!" #~ msgstr "" #~ "Verze 2.0: Po tříměsíční pauze ve vývoji se Paper Clip dočkal druhého " #~ "vydání!" #~ msgid "This version includes a nicer UI with:" #~ msgstr "Tato verze obsahuje hezčí uživatelské rozhraní s:" #~ msgid "Fix many UI papercuts to match the GNOME HIG" #~ msgstr "Oprava uživatelského rozhraní, aby odpovídalo GNOME HIG" #~ msgid "The main view now features a thumbnail of the document" #~ msgstr "Hlavní zobrazení nyní obsahuje miniaturu dokumentu" #~ msgid "" #~ "The term \"Creator\" has been changed for \"Creation Software\" to avoid " #~ "confusion with \"Author\"" #~ msgstr "" #~ "Termín „Tvůrce“ byl změněn pro „Software pro tvorbu“, aby se předešlo " #~ "záměně s výrazem „Autor“" #~ msgid "" #~ "The main view now handles large document titles as special cases to avoid " #~ "breaking the UI" #~ msgstr "" #~ "Hlavní zobrazení nyní zpracovává velké názvy dokumentů jako speciální " #~ "případy, aby nedošlo k porušení uživatelského rozhraní" #~ msgid "The keyword list now has a nicer UI" #~ msgstr "Seznam klíčových slov má nyní hezčí uživatelské rozhraní" #~ msgid "" #~ "The details window has been removed, and the non editable properties of " #~ "the document have been moved to the bottom of the view" #~ msgstr "" #~ "Okno podrobností bylo odstraněno a neupravitelné vlastnosti dokumentu " #~ "byly přesunuty do spodní části pohledu" #~ msgid "Changes that are not saved will be lost permanently" #~ msgstr "Neuložené změny budou trvale ztraceny" #~ msgid "Save" #~ msgstr "Uložit" #~ msgid "Press the “+” button to add a keyword" #~ msgstr "Stisknutím tlačítka „+“ přidáte klíčové slovo" #~ msgid "Producer" #~ msgstr "Producent" Diego-Ivan-Paper-Clip-c4db98e/po/de.po000066400000000000000000000205671500377563500174650ustar00rootroot00000000000000# German translations for pdf_metadata_editor package. # Copyright (C) 2023 THE pdf_metadata_editor'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf_metadata_editor package. # Jürgen Benvenuti , 2023. # msgid "" msgstr "" "Project-Id-Version: pdf_metadata_editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2024-02-21 18:20+0100\n" "Last-Translator: Milo Ivir \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Paper Clip" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;Metadaten;Editor;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Metadaten von PDF-Dokumenten bearbeiten" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Bearbeiten Sie den Titel, den Autor, Schlüsselwörter und weitere Details " "Ihrer PDF-Dokumente" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "" "Jürgen Benvenuti , 2023\n" "Milo Ivir , 2024" #: src/window.ui:20 msgid "Select a File" msgstr "Eine Datei auswählen" #: src/window.ui:24 msgid "Open" msgstr "Öffnen" #: src/window.ui:86 msgid "Open a Document" msgstr "Ein Dokument öffnen" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Ziehen Sie ein PDF-Dokument hierher" #: src/window.ui:153 msgid "_New Window" msgstr "_Neues Fenster" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Speichern" #: src/window.ui:165 msgid "Save _As…" msgstr "Speichern _unter …" #: src/window.ui:171 msgid "Open _With…" msgstr "Öffnen _mit …" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Tastenkürzel" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "Ü_ber Paper Clip" #: src/DateRow.vala:34 msgid "No date set" msgstr "Kein Datum festgelegt" #: src/Document.vala:117 msgid "Unknown" msgstr "Unbekannt" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Seiten in einer Spalte" #: src/Document.vala:301 msgid "One page at a time" msgstr "Eine Seite nach der anderen" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Ungerade Seiten links" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Ungerade Seiten rechts" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Zwei ungerade Seiten links" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Zwei ungerade Seiten rechts" #: src/Document.vala:317 msgid "No specific layout" msgstr "Kein bestimmtes Layout" #: src/Document.vala:326 msgid "Center document's window" msgstr "Dokumentenfenster zentrieren" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Lesereihenfolge ist von rechts nach links" #: src/Document.vala:334 msgid "Display document's title" msgstr "Dokumententitel anzeigen" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Dokument ins Fenster einpassen" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Fenster-Menüleiste verbergen" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Fenster-Werkzeugleisten verbergen" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Benutzeroberflächen-Elemente verbergen" #: src/Document.vala:354 msgid "No preferences" msgstr "Keine Einstellungen" #: src/Document.vala:365 msgid "Adding notes" msgstr "Notizen hinzufügen" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Elemente einfügen" #: src/Document.vala:373 msgid "Copying" msgstr "Kopieren" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Inhalte extrahieren" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Interaktive Formulare ausfüllen" #: src/Document.vala:385 msgid "Modifying" msgstr "Ändern" #: src/Document.vala:389 msgid "Printing" msgstr "Drucken" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Drucken in hoher Auflösung" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "An der lange Kante spiegeln" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "An der kurzen Kante spiegeln" #: src/Document.vala:408 msgid "Only single sided" msgstr "Nur einseitig" #: src/Document.vala:412 msgid "No preference" msgstr "Keine Einstellung" #: src/Document.vala:436 msgid "Not compliant" msgstr "Nicht konform" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Schlüsselwort" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Schlüsselwort hinzufügen" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Schlüsselwort löschen" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Datum entfernen" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Kalender zeigen" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Heute" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Morgen" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Format" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Layout" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Beidseitig" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Untertyp" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Betrachter-Einstellungen" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Berechtigungen" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Titel" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Autor" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Erstellungssoftware" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Thema" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Konvertierungssoftware" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Erstellungsdatum" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Änderungsdatum" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Nichtbearbeitbare Eigenschaften" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Schlüsselwörter" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Ein Schlüsselwort hinzufügen" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Änderungen speichern?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "Geöffnete Dokumente enthalten nicht gespeicherte Änderungen. Nicht " "gespeicherte Änderungen gehen dauerhaft verloren." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_Abbrechen" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "_Verwerfen" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Allgemein" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Beenden" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Neues Fenster" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Fenster schließen" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Tastenkürzel" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Editor" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Öffnen" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Speichern" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Speichern unter …" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Ein Schlüsselwort hinzufügen" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "Passwort-Fenster" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "Dieses Dokument ist verschlüsselt" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "Passwort" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "Entschlüsseln" Diego-Ivan-Paper-Clip-c4db98e/po/es.po000066400000000000000000000267611500377563500175060ustar00rootroot00000000000000# Spanish translations for pdf_metadata_editor package. # Copyright (C) 2023 THE pdf_metadata_editor'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf_metadata_editor package. # Automatically generated, 2023. # Diego Iván , 2023-2024. # msgid "" msgstr "" "Project-Id-Version: pdf_metadata_editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:36-0600\n" "PO-Revision-Date: 2024-01-27 21:40-0600\n" "Last-Translator: Diego Iván \n" "Language-Team: Spanish - Mexico <->\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Gtranslator 45.3\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Paper Clip" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;Metadatos;Editor;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Edite metadatos de documentos PDF" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Edite el título, autor, palabras clave y más detalles de sus documentos PDF" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "Diego Iván M.E" #: src/window.ui:20 msgid "Select a File" msgstr "Seleccionar un Archivo" #: src/window.ui:24 msgid "Open" msgstr "Abrir" #: src/window.ui:86 msgid "Open a Document" msgstr "Abrir un Documento" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Arrastre un documento PDF aquí" #: src/window.ui:153 msgid "_New Window" msgstr "Nueva Ventana" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Guardar" #: src/window.ui:165 msgid "Save _As…" msgstr "Guardar _Como…" #: src/window.ui:171 msgid "Open _With…" msgstr "Abrir con…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Atajos de Teclado" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "_Acerca de Paper Clip" #: src/DateRow.vala:34 msgid "No date set" msgstr "Sin fecha establecida" #: src/Document.vala:117 msgid "Unknown" msgstr "Desconocido" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Páginas en una columna" #: src/Document.vala:301 msgid "One page at a time" msgstr "Una página a la vez" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Páginas nones a la izquierda" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Páginas pares a la derecha" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Dos páginas nones a la izquierda" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Dos páginas nones a la derecha" #: src/Document.vala:317 msgid "No specific layout" msgstr "Sin disposición específica" #: src/Document.vala:326 msgid "Center document's window" msgstr "Centrar la ventana del documento" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Orden de lectura de derecha a izquierda" #: src/Document.vala:334 msgid "Display document's title" msgstr "Mostrar el título del documento" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Ajustar el documento a la ventana" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Esconder la barra de menús" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Esconder la barra de herramientas" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Esconder elementos de la interfaz gráfica" #: src/Document.vala:354 msgid "No preferences" msgstr "Sin preferencias" #: src/Document.vala:365 msgid "Adding notes" msgstr "Añadir notas" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Insertar elementos" #: src/Document.vala:373 msgid "Copying" msgstr "Copiar" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Extraer contenidos" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Llenar formulario interactivos" #: src/Document.vala:385 msgid "Modifying" msgstr "Modificar" #: src/Document.vala:389 msgid "Printing" msgstr "Imprimir" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Imprimir en alta definición" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Voltear de lado largo" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Voltear del lado corto" #: src/Document.vala:408 msgid "Only single sided" msgstr "De un solo lado" #: src/Document.vala:412 msgid "No preference" msgstr "Sin preferencia" #: src/Document.vala:436 msgid "Not compliant" msgstr "No cumple con ningún estándar" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Palabra Clave" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Añadir Palabra Clave" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Borrar palabra clave" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Quitar Fecha" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Mostrar Calendario" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Hoy" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Mañana" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Formato" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Disposición" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Dúplex" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Subtipo" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Preferencias del visor" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Permisos" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Título" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Autor" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Software de Creación" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Tema" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Software de Conversión" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Fecha de Creación" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Fecha de Modificación" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Propiedades No Editables" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Palabras Clave" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Añadir Una Palabra Clave" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "¿Quiere Guardar Los Cambios?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "Los documentos abiertos contienen cambios sin guardar. Los cambio que no se " "guarden se perderán de forma permanente." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_Cancelar" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "_Descartar" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "General" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Salir" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Nueva Ventana" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Cerrar Ventana" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Atajos de Teclado" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Editor" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Abrir" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Guardar" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Guardar Como…" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Añadir una palabra clave" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "Diálogo de Contraseña" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "Este Documento Está Encriptado" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "Contraseña" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "Decifrar" #~ msgid "Paper Clip Version 3.5" #~ msgstr "Paper Clip Versión 3.5" #~ msgid "The latest release of Paper Clip brings the following changes:" #~ msgstr "La última versión de Paper Clip trae los siguientes cambios" #~ msgid "Small cosmetic changes to follow GNOME 45 look-and-feel" #~ msgstr "Pequeños cambios cosméticos para seguir la estética de GNOME 45" #~ msgid "The app can open now multiple files in different windows" #~ msgstr "" #~ "La aplicación ahora puede abrir múltiples archivos en diferentes ventanas" #~ msgid "Russian Translation by Ser82-png" #~ msgstr "Traducción al Ruso por Ser82-png" #~ msgid "Diego Iván" #~ msgstr "Diego Iván" #~ msgid "Paper Clip Version 3.2" #~ msgstr "Paper Clip Versión 3.2" #~ msgid "This new version of Paper Clip has the following changes" #~ msgstr "Esta nueva versión de Paper Clip trae los siguientes cambios" #~ msgid "Czech translation" #~ msgstr "Traducción al Checo" #~ msgid "Better rendering for thumbnails" #~ msgstr "Mejor renderizado de miniaturas" #~ msgid "Better cache management" #~ msgstr "Mejor manejo de caché" #~ msgid "" #~ "Version 2.0: After a three month development hiatus, Paper Clip sees its " #~ "second release!" #~ msgstr "" #~ "Versión 2.0: Después de tres meses de hiato, ¡Paper Clip tiene su segunda " #~ "versión!" #~ msgid "This version includes a nicer UI with:" #~ msgstr "Esta versión tiene una interfaz más agradable con:" #~ msgid "Fix many UI papercuts to match the GNOME HIG" #~ msgstr "" #~ "Arreglar varios problemas con la interfaz para alinearse al GNOME HIG" #~ msgid "The main view now features a thumbnail of the document" #~ msgstr "La vista principal ahora cuenta con una miniatura del documento" #~ msgid "" #~ "The term \"Creator\" has been changed for \"Creation Software\" to avoid " #~ "confusion with \"Author\"" #~ msgstr "" #~ "El termino \"Creador\" ha sido cambiado por \"Software de Creación\" para " #~ "evitar confusión con \"Autor\"" #~ msgid "" #~ "The main view now handles large document titles as special cases to avoid " #~ "breaking the UI" #~ msgstr "" #~ "La vista principal ahora maneja nombres de documentos largos para evitar " #~ "romper la interfaz" #~ msgid "The keyword list now has a nicer UI" #~ msgstr "La lista de palabras clave para tiene una mejor interfaz" #~ msgid "" #~ "The details window has been removed, and the non editable properties of " #~ "the document have been moved to the bottom of the view" #~ msgstr "" #~ "La ventana de detalles ha sido removida, las propiedades no editables del " #~ "documento han sido movidas al final de la vista" #~ msgid "Changes that are not saved will be lost permanently" #~ msgstr "Los cambios que no se guarden se perderán permanentemente" #~ msgid "Save" #~ msgstr "Guardar" #~ msgid "Press the “+” button to add a keyword" #~ msgstr "Presione el botón “+” para añadir una palabra clave" #~ msgid "Producer" #~ msgstr "Productor" #~ msgid "Do you want to save the changes?" #~ msgstr "¿Quiere guardar los cambios?" #~ msgid "_About PDF Metadata Editor" #~ msgstr "_Acerca del Editor de Metadatos de PDF" #~ msgid "Details" #~ msgstr "Detalles" #~ msgid "Creator" #~ msgstr "Creador" Diego-Ivan-Paper-Clip-c4db98e/po/eu.po000066400000000000000000000205451500377563500175020ustar00rootroot00000000000000# Basque translations for pdf_metadata_editor package # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # FIRST AUTHOR , YEAR. # Sergio Varela , 2023. # msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2023-12-15 17:24+0100\n" "Last-Translator: Sergio Varela \n" "Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Gtranslator 45.3\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Paper Clip" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;Metadata;Editorea;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Editatu PDF dokumentuen metadatuak" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Editatu izenburua, egilea, hitz gakoak eta zure PDF dokumentuen xehetasun " "gehiago" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "Sergio Varela https://ingrownmink4.codeberg.page" #: src/window.ui:20 msgid "Select a File" msgstr "Aukeratu fitxategi bat" #: src/window.ui:24 msgid "Open" msgstr "Ireki" #: src/window.ui:86 msgid "Open a Document" msgstr "Ireki dokumentu bat" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Arrastatu eta utzi hemen PDF fitxategi bat." #: src/window.ui:153 msgid "_New Window" msgstr "_Leiho berria" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Gorde" #: src/window.ui:165 msgid "Save _As…" msgstr "Gorde _honela…" #: src/window.ui:171 msgid "Open _With…" msgstr "Ireki _honekin…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Teklatuaren lasterbideak" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "_Paper Clip-ri buruz" #: src/DateRow.vala:34 msgid "No date set" msgstr "Ez dago datarik." #: src/Document.vala:117 msgid "Unknown" msgstr "Ezezaguna" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Orrialdeak zutabe bakarrean." #: src/Document.vala:301 msgid "One page at a time" msgstr "Orrialde bat batera" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Orrialde bakoitzak ezkerretara." #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Orrialde bakoitzak eskuinetara" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Bi orrialde bakoitzak ezkerretara" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Bi orrialde bakoitzak eskuinetara" #: src/Document.vala:317 msgid "No specific layout" msgstr "Ez dago antolaketa espezifikorik" #: src/Document.vala:326 msgid "Center document's window" msgstr "Zentratu dokumentuen leihoa." #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Irakurtzeko ordena ezkerretik eskuinera dago." #: src/Document.vala:334 msgid "Display document's title" msgstr "Dokumentuaren izenburua erakutsi" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Dokumentua leihora doitu" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Ezkutatu leihoko menua" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Leihoetako tresna-barrak ezkutatu" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Erabiltzaile-interfazearen elementuak ezkutatu" #: src/Document.vala:354 msgid "No preferences" msgstr "Lehentasunik gabe" #: src/Document.vala:365 msgid "Adding notes" msgstr "Oharrak gehitzea" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Elementuak txertatzea" #: src/Document.vala:373 msgid "Copying" msgstr "Kopiatzea" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Edukiak ateratzea" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Formulario interaktiboak betetzea" #: src/Document.vala:385 msgid "Modifying" msgstr "Aldatzea" #: src/Document.vala:389 msgid "Printing" msgstr "Inprimatzea" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Bereizmen handiko inprimatzea" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Ertz luzean buelta eman" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Ertz laburrean buelta eman" #: src/Document.vala:408 msgid "Only single sided" msgstr "Alde batean bakarrik" #: src/Document.vala:412 msgid "No preference" msgstr "Lehentasunik gabe" #: src/Document.vala:436 msgid "Not compliant" msgstr "Ez du betetzen" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Gako-hitza" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Gehitu gako-hitza" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Ezabatu gako-hitza" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Kendu data" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Egutegia erakutsi" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Gaur" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Bihar" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Formatua" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Diseinua" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Bi aldetara" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Azpimota" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Bisorearen lehentasunak" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Baimenak" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Titulua" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Egilea" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Sorkuntza-softwarea" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Gaia" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Bihurketa-softwarea" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Sortze-data" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Aldaketaren data" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Propietate editaezinak" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Gako-hitzak" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Gehitu gako-hitza" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Aldaketak gorde?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "Dokumentu irekiek gorde gabeko aldaketak dituzte. Gordetzen ez diren " "aldaketak etengabe galduko dira." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_Ezeztatu" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "_Baztertu" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Orokorra" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Irten" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Leiho berria" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Leihoa itxi" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Teklatuko lasterbideak" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Editorea" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Ireki" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Gorde" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Gorde honela…" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Gehitu gako-hitz bat" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "" #~ msgid "PDF" #~ msgstr "PDF" #~ msgid "Metadata" #~ msgstr "Metadata" #~ msgid "Editor" #~ msgstr "Editorea" Diego-Ivan-Paper-Clip-c4db98e/po/fr.po000066400000000000000000000206531500377563500175000ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # FIRST AUTHOR , YEAR. # Irénée THIRION , 2023. # msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2023-12-16 14:22+0100\n" "Last-Translator: Irénée Thirion \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 3.4.1\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Trombone" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;métadonnées;éditeur;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Éditez les métadonnées d’un document PDF" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Modifiez le titre, l’auteur, les mots-clés et d’autres détails de vos " "documents PDF" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "Irénée Thirion" #: src/window.ui:20 msgid "Select a File" msgstr "Sélectionner un fichier" #: src/window.ui:24 msgid "Open" msgstr "Ouvrir" #: src/window.ui:86 msgid "Open a Document" msgstr "Ouvrir un document" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Glissez et déposez un document PDF ici" #: src/window.ui:153 msgid "_New Window" msgstr "_Nouvelle fenêtre" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "En_registrer" #: src/window.ui:165 msgid "Save _As…" msgstr "Enre_gistrer sous…" #: src/window.ui:171 msgid "Open _With…" msgstr "Ouvrir _avec…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Raccourcis clavier" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "À propos de Trombone" #: src/DateRow.vala:34 msgid "No date set" msgstr "Aucune date définie" #: src/Document.vala:117 msgid "Unknown" msgstr "Inconnu" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Pages en une colonne" #: src/Document.vala:301 msgid "One page at a time" msgstr "Une page à la fois" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Pages impaires à gauche" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Pages impaires à droite" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Deux pages impaires à gauche" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Deux pages impaires à droite" #: src/Document.vala:317 msgid "No specific layout" msgstr "Aucune mise en page spécifique" #: src/Document.vala:326 msgid "Center document's window" msgstr "Centrer la fenêtre du document" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Le sens de lecture est de gauche à droite" #: src/Document.vala:334 msgid "Display document's title" msgstr "Afficher le titre du document" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Ajuster le document à la fenêtre" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Masquer la barre de menu de la fenêtre" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Masquer les barres d’outils de la fenêtre" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Masquer des éléments de l’interface" #: src/Document.vala:354 msgid "No preferences" msgstr "Aucune préférence" #: src/Document.vala:365 msgid "Adding notes" msgstr "Annoter" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Insérer des éléments" #: src/Document.vala:373 msgid "Copying" msgstr "Copier" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Extraire des contenus" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Remplir des formulaires interactifs" #: src/Document.vala:385 msgid "Modifying" msgstr "Modifier" #: src/Document.vala:389 msgid "Printing" msgstr "Imprimer" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Imprimer en haute résolution" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Retournement sur le bord long" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Retournement sur le bord court" #: src/Document.vala:408 msgid "Only single sided" msgstr "Uniquement sur une seule face" #: src/Document.vala:412 msgid "No preference" msgstr "Aucune préférence" #: src/Document.vala:436 msgid "Not compliant" msgstr "Incompatible" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Mot-clé" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Ajouter un mot-clé" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Supprimer le mot-clé" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Supprimer la date" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Afficher le calendrier" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Aujourd’hui" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Demain" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Format" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Mise en page" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Duplex" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Sous-type" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Préférences du visionneur" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Permissions" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Titre" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Auteur" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Logiciel de création" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Sujet" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Logiciel de conversion" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Date de création" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Date de modification" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Propriétés non éditables" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Mots-clés" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Ajouter un mot-clé" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Enregistrer les modifications ?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "Des documents ouverts contiennent des modifications non enregistrées. Ces " "modifications non enregistrées seront définitivement perdues." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "A_nnuler" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "_Abandonner" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Général" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Quitter" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Nouvelle fenêtre" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Fermer la fenêtre" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Raccourcis clavier" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Éditeur" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Ouvrir" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Enregistrer" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Enregistrer sous…" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Ajouter un mot-clé" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "" #~ msgid "PDF" #~ msgstr "PDF" #~ msgid "Metadata" #~ msgstr "Métadonnées" Diego-Ivan-Paper-Clip-c4db98e/po/he.po000066400000000000000000000216321500377563500174630ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # FIRST AUTHOR , YEAR. # Yosef Or Boczko , 2024. # msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-08-18 10:28+0000\n" "PO-Revision-Date: 2024-09-10 15:38+0300\n" "Last-Translator: Yosef Or Boczko \n" "Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? " "2 : 3)\n" "X-Generator: Gtranslator 46.1\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "אטב משרדי" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;נתוני על;מטאדאטא;מטה דאטא;עורך;עריכה;נתונים;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "עריכת נתוני העל של מסמכי PDF" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "עריכת הכותרת, המחבר, מילות מפתח ונתונים נוספים של מסמכי ה־PDF שלך." #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "" "יוסף אור בוצ׳קו \n" "מיזם תרגום GNOME לעברית https://l10n.gnome.org/teams/he/" #: src/window.ui:20 msgid "Select a File" msgstr "בחירת קובץ" #: src/window.ui:24 msgid "Open" msgstr "פתיחה" #: src/window.ui:86 msgid "Open a Document" msgstr "פתיחת מסמך" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "יש לגרור ולשחרר לכאן קובץ PDF" #: src/window.ui:153 msgid "_New Window" msgstr "_חלון חדש" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_שמירה" #: src/window.ui:165 msgid "Save _As…" msgstr "שמירה _בשם…" #: src/window.ui:171 msgid "Open _With…" msgstr "_פתיחה באמצעות…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_צירופי מקשים" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "_על אטב משרדי" #: src/DateRow.vala:34 msgid "No date set" msgstr "לא נקבע תאריך" #: src/Document.vala:117 msgid "Unknown" msgstr "לא ידוע" #: src/Document.vala:298 msgid "Pages in one column" msgstr "דפים בעמודה אחת" #: src/Document.vala:301 msgid "One page at a time" msgstr "פתיחת דף אחד בכל פעם" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "דפים אי־זוגיים בצד שמאל" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "דפים אי־זוגיים בצד ימין" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "שני דפים אי־זוגיים בצד שמאל" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "שני דפים אי־זוגיים בצד ימין" #: src/Document.vala:317 msgid "No specific layout" msgstr "לא הוגדרה פריסה מסוימת" #: src/Document.vala:326 msgid "Center document's window" msgstr "מרכוז חלון המסמך" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "סדר הקריאה הוא מימין לשמאל" #: src/Document.vala:334 msgid "Display document's title" msgstr "הצגת כותרת המסמך" #: src/Document.vala:338 msgid "Fit document to window" msgstr "התאמה המסמך לחלון" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "הסתרת שורת התפריטים של החלון" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "הסרת סרגלי הכלים של החלון" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "הסתרת רכיבי ממשק משתמש" #: src/Document.vala:354 msgid "No preferences" msgstr "אין העדפות" #: src/Document.vala:365 msgid "Adding notes" msgstr "הוספת הערות" #: src/Document.vala:369 msgid "Inserting elements" msgstr "הכנסת רכיבים" #: src/Document.vala:373 msgid "Copying" msgstr "מעתיק" #: src/Document.vala:377 msgid "Extracting contents" msgstr "מחלץ תוכן" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "מילוי טפסים אינטראקטיבית" #: src/Document.vala:385 msgid "Modifying" msgstr "משנה" #: src/Document.vala:389 msgid "Printing" msgstr "בהדפסה" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "הדפסה בהבחנה גבוהה" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "היפוך בצד הארוך" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "היפוך בצד הקצר" #: src/Document.vala:408 msgid "Only single sided" msgstr "צד אחד בלבד" #: src/Document.vala:412 msgid "No preference" msgstr "אין העדפות" #: src/Document.vala:436 msgid "Not compliant" msgstr "ללא סיווג" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "מילת מפתח" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "הוספת מילת מפתח" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "מחיקת מילת מפתח" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "הסרת תאריך" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "הצגת לוח שנה" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "היום" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "מחר" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "תבנית" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "פריסה" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "דו־צדדי" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "תת־סוג" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "העדפות צפייה" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "הרשאות" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "כותרת" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "יוצר" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "תכנת יצירה" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "נושא" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "תכנת המרה" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "תאריך היווצרות" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "תאריך שינוי" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "אפשרויות שלא ניתנות לעריכה" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "מילות מפתח" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "הוספת מילת מפתח" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "לשמור את השינויים?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "קיימים שינויים שטרם נשמרו. שינויים שלא ישמרו יאבדו לצמיתות." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_ביטול" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "השל_כה" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "כללי" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "יציאה" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "חלון חדש" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "סגירת חלון" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "צירופי מקשים" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "עורך" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "פתיחה" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "שמירה" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "שמירה בשם…" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "הוספת מילת מפתח" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "דו שיח ססמה" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "מסמך זה מוצפן" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "ססמה" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "פענוח" Diego-Ivan-Paper-Clip-c4db98e/po/hi.po000066400000000000000000000253051500377563500174700ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # FIRST AUTHOR , YEAR. # Scrambled777 , 2024. # msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2024-05-11 14:52+0530\n" "Last-Translator: Scrambled777 \n" "Language-Team: Hindi \n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Gtranslator 46.1\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Paper Clip" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;मेटाडेटा;संपादक;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "PDF दस्तावेज़ मेटाडेटा संपादित करें" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "अपने PDF दस्तावेज़ों का शीर्षक, लेखक, खोजशब्द और अधिक विवरण संपादित करें" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "Scrambled777 " #: src/window.ui:20 msgid "Select a File" msgstr "एक फाइल चुनें" #: src/window.ui:24 msgid "Open" msgstr "खोलें" #: src/window.ui:86 msgid "Open a Document" msgstr "एक दस्तावेज़ खोलें" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "यहां PDF फाइल को खींचें और छोड़ें" #: src/window.ui:153 msgid "_New Window" msgstr "नई खिड़की (_N)" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "सहेजें (_S)" #: src/window.ui:165 msgid "Save _As…" msgstr "इस रूप में सहेजें (_A)…" #: src/window.ui:171 msgid "Open _With…" msgstr "इससे खोलें (_W)…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "कीबोर्ड शॉर्टकट (_K)" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "Paper Clip के बारे में (_A)" #: src/DateRow.vala:34 msgid "No date set" msgstr "कोई तिथि निर्धारित नहीं" #: src/Document.vala:117 msgid "Unknown" msgstr "अज्ञात" #: src/Document.vala:298 msgid "Pages in one column" msgstr "एक कॉलम में पन्ने" #: src/Document.vala:301 msgid "One page at a time" msgstr "एक बार में एक पृष्ठ" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "बायीं ओर विषम क्रमांकित पृष्ठ" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "दायीं ओर विषम क्रमांकित पृष्ठ" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "बायीं ओर दो विषम क्रमांकित पृष्ठ" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "दायीं ओर दो विषम क्रमांकित पृष्ठ" #: src/Document.vala:317 msgid "No specific layout" msgstr "कोई विशिष्ट अभिन्यास नहीं" #: src/Document.vala:326 msgid "Center document's window" msgstr "दस्तावेज़ की खिड़की को केंद्र में रखें" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "पढ़ने का क्रम दाएं से बाएं है" #: src/Document.vala:334 msgid "Display document's title" msgstr "दस्तावेज़ का शीर्षक प्रदर्शित करें" #: src/Document.vala:338 msgid "Fit document to window" msgstr "दस्तावेज़ को खिड़की के समुचित करें" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "खिड़की मेनूपट्टी छिपाएं" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "खिड़की औज़ारपट्टी छिपाएं" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "UI तत्व छुपाएं" #: src/Document.vala:354 msgid "No preferences" msgstr "कोई प्राथमिकता नहीं" #: src/Document.vala:365 msgid "Adding notes" msgstr "टिप्पणियां जोड़ी जा रही हैं" #: src/Document.vala:369 msgid "Inserting elements" msgstr "तत्वों को सम्मिलित किया जा रहा है" #: src/Document.vala:373 msgid "Copying" msgstr "कॉपी बनाई जा रही" #: src/Document.vala:377 msgid "Extracting contents" msgstr "सामग्री निकली जा रही है" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "अंतर्क्रियात्मक प्रपत्र भर रहें हैं" #: src/Document.vala:385 msgid "Modifying" msgstr "संशोधित किया जा रहा है" #: src/Document.vala:389 msgid "Printing" msgstr "छपाई" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "उच्च रिज़ॉल्यूशन में छापें" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "लंबे किनारे पर पलटें" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "छोटे किनारे पर पलटें" #: src/Document.vala:408 msgid "Only single sided" msgstr "केवल एक तरफा" #: src/Document.vala:412 msgid "No preference" msgstr "कोई वरीयता नहीं" #: src/Document.vala:436 msgid "Not compliant" msgstr "सम्मत नहीं है" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "कीवर्ड" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "कीवर्ड जोड़ें" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "कीवर्ड मिटाएं" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "तिथि हटाएं" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "कैलेंडर दिखाएं" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "आज" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "कल" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "प्रारूप" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "अभिन्यास" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "डुप्लेक्स" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "उपप्रकार" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "दर्शक प्राथमिकताएं" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "अनुमतियां" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "शीर्षक" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "लेखक" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "निर्माण सॉफ्टवेयर" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "विषय" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "रूपांतरण सॉफ्टवेयर" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "निर्माण तिथि" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "संशोधन तिथि" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "गैर-संपादनयोग्य गुण" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "खोजशब्द" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "खोजशब्द जोड़ें" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "परिवर्तन सहेजें?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "खुले दस्तावेज़ों में सहेजे न गए परिवर्तन होते हैं। जो परिवर्तन सहेजे नहीं गए वे स्थायी रूप से नष्ट " "हो जाएंगे।" #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "रद्द करें (_C)" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "त्यागें (_D)" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "सामान्य" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "छोड़ें" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "नई खिड़की" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "खिड़की बंद करें" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "कीबोर्ड शॉर्टकट" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "संपादक" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "खोलें" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "सहेजें" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "ऐसे सहेजें…" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "खोजशब्द जोड़ें" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "पासवर्ड संवाद" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "यह दस्तावेज़ कूटलेखित है" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "पासवर्ड" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "विकोड" Diego-Ivan-Paper-Clip-c4db98e/po/hr.po000066400000000000000000000203431500377563500174760ustar00rootroot00000000000000# Croatian translations for pdf_metadata_editor package. # Copyright (C) 2023 THE pdf_metadata_editor'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf_metadata_editor package. # Milo Ivir , 2023. # msgid "" msgstr "" "Project-Id-Version: pdf_metadata_editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2024-02-21 18:20+0100\n" "Last-Translator: Milo Ivir \n" "Language-Team: \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 3.0\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Paper Clip" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;metapodaci;uređivač;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Uredi metapodatke PDF dokumenata" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "Uredi naslov, autora, ključne riječi i druge podatke PDF dokumenata" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "Milo Ivir , 2023, 2024" #: src/window.ui:20 msgid "Select a File" msgstr "Odaberi datoteku" #: src/window.ui:24 msgid "Open" msgstr "Otvori" #: src/window.ui:86 msgid "Open a Document" msgstr "Otvori dokument" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Povuci i ispusti PDF dokument ovdje" #: src/window.ui:153 msgid "_New Window" msgstr "_Novi prozor" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Spremi" #: src/window.ui:165 msgid "Save _As…" msgstr "Spremi _kao …" #: src/window.ui:171 msgid "Open _With…" msgstr "Otvori pomoću …" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Tipkovni prečaci" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "O _aplikciji Paper Clip" #: src/DateRow.vala:34 msgid "No date set" msgstr "Datum nije postavljen" #: src/Document.vala:117 msgid "Unknown" msgstr "Nepoznat" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Stranice u jednom stupcu" #: src/Document.vala:301 msgid "One page at a time" msgstr "Pojedinačne stranice" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Neparne stranice lijevo" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Neparne stranice desno" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Dvije neparne stranice lijevo" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Dvije neparne stranice desno" #: src/Document.vala:317 msgid "No specific layout" msgstr "Bez određenog rasporeda" #: src/Document.vala:326 msgid "Center document's window" msgstr "Centriraj prozor dokumenta" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Smjer čitanja je slijeva nadesno" #: src/Document.vala:334 msgid "Display document's title" msgstr "Prikaži naslov dokumenta" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Prilagodi dokument veličini prozora" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Sakrij traku izbornika" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Sakrij traku alata" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Sakrij elemente korisničkog sučelja" #: src/Document.vala:354 msgid "No preferences" msgstr "Bez postavki" #: src/Document.vala:365 msgid "Adding notes" msgstr "Dodavanje bilježaka" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Umetanje elemenata" #: src/Document.vala:373 msgid "Copying" msgstr "Kopiranje" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Izdvajanje sadržaja" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Ispunjavanje interaktivnih obrazaca" #: src/Document.vala:385 msgid "Modifying" msgstr "Mijenjanje" #: src/Document.vala:389 msgid "Printing" msgstr "Ispis" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Ispis u visokoj rezoluciji" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Preokreni po dugom rubu" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Preokreni po kratkom rubu" #: src/Document.vala:408 msgid "Only single sided" msgstr "Samo jednostrano" #: src/Document.vala:412 msgid "No preference" msgstr "Bez postavke" #: src/Document.vala:436 msgid "Not compliant" msgstr "Nije u skladu" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Ključna riječ" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Dodaj ključnu riječ" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Izbriši ključnu riječ" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Ukloni datum" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Pokaži kalendar" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Danas" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Sutra" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Format" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Raspored" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Obostrano" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Podvrsta" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Postavke prikaza" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Dozvole" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Naslov" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Autor" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Softver izvornog dokumenta" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Predmet" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Softver korišten za konverziju" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Datum stvaranja" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Datum promjene" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Nepromjenjiva svojstva" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Ključne riječi" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Dodaj ključnu riječ" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Spremiti promjene?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "Otvoreni dokumenti sadrže nespremljene promjene. Promjene koje nisu " "spremljene će se zauvijek izgubiti." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_Odustani" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "O_dbaci" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Opće" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Zatvori aplikaciju" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Novi prozor" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Zatvori prozor" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Tipkovni prečaci" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Uređivač" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Otvori" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Spremi" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Spremi kao …" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Dodaj ključnu riječ" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "Dijalog za lozinku" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "Ovaj je dokument šifriran" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "Lozinka" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "Dešifriraj" Diego-Ivan-Paper-Clip-c4db98e/po/it.po000066400000000000000000000270731500377563500175100ustar00rootroot00000000000000# ITALIAN TRANSLATION FOR PDF-METADATA-EDITOR. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # ALBANO BATTISTELLA , 2023,2024. # msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2024-01-28 10:02+0100\n" "Last-Translator: Albano Battistella \n" "Language-Team: Italian\n" "Language: it_IT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.2.2\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Paper Clip" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;Metadata;Editor;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Modifica i metadati del documento PDF" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Modifica il titolo, l'autore, le parole chiave e altri dettagli dei tuoi " "documenti PDF" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "Albano Battistella" #: src/window.ui:20 msgid "Select a File" msgstr "Seleziona un file" #: src/window.ui:24 msgid "Open" msgstr "Apri" #: src/window.ui:86 msgid "Open a Document" msgstr "Apri un documento" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Trascina e rilascia un file PDF qui" #: src/window.ui:153 msgid "_New Window" msgstr "_Nuova finestra" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Salva" #: src/window.ui:165 msgid "Save _As…" msgstr "Salva _come…" #: src/window.ui:171 msgid "Open _With…" msgstr "Apri con…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Scorciatoie da tastiera" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "_Informazioni su Paper Clip" #: src/DateRow.vala:34 msgid "No date set" msgstr "Nessuna data stabilita" #: src/Document.vala:117 msgid "Unknown" msgstr "Sconosciuto" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Pagine in una colonna" #: src/Document.vala:301 msgid "One page at a time" msgstr "Una pagina alla volta" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Pagine dispari a sinistra" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Pagine dispari a destra" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Due pagine dispari a sinistra" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Due pagine dispari a destra" #: src/Document.vala:317 msgid "No specific layout" msgstr "Nessun layout specifico" #: src/Document.vala:326 msgid "Center document's window" msgstr "Centra la finestra del documento" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "L'ordine di lettura è da destra a sinistra" #: src/Document.vala:334 msgid "Display document's title" msgstr "Visualizza il titolo del documento" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Adatta il documento alla finestra" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Nascondi la barra dei menu della finestra" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Nascondi le barre degli strumenti della finestra" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Nascondi gli elementi dell'interfaccia utente" #: src/Document.vala:354 msgid "No preferences" msgstr "Nessuna preferenza" #: src/Document.vala:365 msgid "Adding notes" msgstr "Aggiunta di note" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Inserimento di elementi" #: src/Document.vala:373 msgid "Copying" msgstr "Copiare" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Estrazione dei contenuti" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Compilazione moduli interattivi" #: src/Document.vala:385 msgid "Modifying" msgstr "Modificare" #: src/Document.vala:389 msgid "Printing" msgstr "Stampare" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Stampa in alta risoluzione" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Capovolgere sul lato lungo" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Capovolgi sul lato corto" #: src/Document.vala:408 msgid "Only single sided" msgstr "Solo a lato singolo" #: src/Document.vala:412 msgid "No preference" msgstr "Nessuna preferenza" #: src/Document.vala:436 msgid "Not compliant" msgstr "Non conforme" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Parola chiave" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Aggiungi parola chiave" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Elimina parola chiave" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Rimuovi data" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Mostra calendario" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Oggi" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Domani" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Formato" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Layout" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Duplex" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Sottotipo" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Preferenze del visualizzatore" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Permessi" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Titolo" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Autore" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Creatore software" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Soggetto" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Software di conversione" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Data di creazione" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Data di modifica" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Proprietà non modificabili" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Parole chiave" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Aggiungi una parola chiave" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Salvare le modifiche?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "I documenti aperti contengono modifiche non salvate. Le modifiche che non " "vengono salvate verranno perdute definitivamente." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_Annulla" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "_Abbandona" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Generale" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Esci" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Nuova finestra" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Chiudi finestra" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Scorciatoie da tastiera" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Apri" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Salva" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Salva come…" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Aggiungi una parola chiave" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "Finestra di dialogo della password" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "Questo documento è crittografato" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "Password" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "Decifra" #~ msgid "Paper Clip Version 3.5" #~ msgstr "Paper Clip versione 3.5" #~ msgid "The latest release of Paper Clip brings the following changes:" #~ msgstr "L'ultima versione di Paper Clip apporta le seguenti modifiche:" #~ msgid "Small cosmetic changes to follow GNOME 45 look-and-feel" #~ msgstr "Piccole modifiche estetiche per seguire l'aspetto di GNOME 45" #~ msgid "The app can open now multiple files in different windows" #~ msgstr "L'app ora può aprire più file in finestre diverse" #~ msgid "Russian Translation by Ser82-png" #~ msgstr "Traduzione russa di Ser82-png" #~ msgid "Paper Clip Version 3.2" #~ msgstr "Paper Clip Versione 3.2" #~ msgid "This new version of Paper Clip has the following changes" #~ msgstr "Questa nuova versione di Paper Clip presenta le seguenti modifiche" #~ msgid "Czech translation" #~ msgstr "Traduzione ceca" #~ msgid "Better rendering for thumbnails" #~ msgstr "Migliore rendering per le miniature" #~ msgid "Better cache management" #~ msgstr "Migliore gestione della cache" #~ msgid "Diego Iván" #~ msgstr "Diego Iván" #~ msgid "" #~ "Version 2.0: After a three month development hiatus, Paper Clip sees its " #~ "second release!" #~ msgstr "" #~ "Versione 2.0: Dopo una pausa di sviluppo di tre mesi, Paper Clip vede la " #~ "sua seconda uscita!" #~ msgid "This version includes a nicer UI with:" #~ msgstr "Questa versione include un'interfaccia utente migliore con:" #~ msgid "Fix many UI papercuts to match the GNOME HIG" #~ msgstr "" #~ "Correggi molti tagli di carta dell'interfaccia utente per abbinarli a " #~ "GNOME HIG" #~ msgid "The main view now features a thumbnail of the document" #~ msgstr "La vista principale ora presenta una miniatura del documento" #~ msgid "" #~ "The term \"Creator\" has been changed for \"Creation Software\" to avoid " #~ "confusion with \"Author\"" #~ msgstr "" #~ "Il termine \"Creatore\" è stato modificato per \"Creatore Software\" per " #~ "evitare confusione con l'\"Autore\"" #~ msgid "" #~ "The main view now handles large document titles as special cases to avoid " #~ "breaking the UI" #~ msgstr "" #~ "La vista principale ora gestisce i titoli di documenti di grandi " #~ "dimensioni come casi speciali, da evitare per non corrompere " #~ "l'interfaccia utente" #~ msgid "The keyword list now has a nicer UI" #~ msgstr "" #~ "L'elenco delle parole chiave ora ha un'interfaccia utente più gradevole" #~ msgid "" #~ "The details window has been removed, and the non editable properties of " #~ "the document have been moved to the bottom of the view" #~ msgstr "" #~ "La finestra dei dettagli è stata rimossa e le proprietà non modificabili " #~ "del documento sono state spostate in fondo alla vista" #~ msgid "Changes that are not saved will be lost permanently" #~ msgstr "Le modifiche non salvate andranno perse definitivamente" #~ msgid "Save" #~ msgstr "Salva" #~ msgid "Press the “+” button to add a keyword" #~ msgstr "Premi il pulsante “+” per aggiungere una parola chiave" #~ msgid "Producer" #~ msgstr "Produttore" #~ msgid "Do you want to save the changes?" #~ msgstr "Vuoi salvare le modifiche?" #~ msgid "_About PDF Metadata Editor" #~ msgstr "_Informazioni su PDF Metadata Editor" #~ msgid "Details" #~ msgstr "Dettagli" #~ msgid "Creator" #~ msgstr "Creatore" Diego-Ivan-Paper-Clip-c4db98e/po/meson.build000066400000000000000000000000641500377563500206650ustar00rootroot00000000000000i18n.gettext('pdf-metadata-editor', preset: 'glib') Diego-Ivan-Paper-Clip-c4db98e/po/nb.po000066400000000000000000000177421500377563500174750ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2024-03-13 08:50+0100\n" "Last-Translator: Brage \n" "Language-Team: \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.4.2\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Paper Clip" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "" "PDF;dokument;fil;metadata;informasjon;redigering;tittel;forfatter;nøkkelord;" "editor;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Gi dokumentene dine nyttig metadata" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Fyll inn tittel, forfatter, nøkkelord og mer i PDF-filene dine. Denne " "informasjonen vil ikke ta opp plass i selve dokumentene, men gjør det lett å " "organisere og dele dem med andre." #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "Brage Fuglseth https://bragefuglseth.dev" #: src/window.ui:20 msgid "Select a File" msgstr "Velg fil" #: src/window.ui:24 msgid "Open" msgstr "Åpne" #: src/window.ui:86 msgid "Open a Document" msgstr "Åpne et dokument" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Dra og slipp en PDF-fil her" #: src/window.ui:153 msgid "_New Window" msgstr "_Nytt vindu" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Lagre" #: src/window.ui:165 msgid "Save _As…" msgstr "Lagre _som…" #: src/window.ui:171 msgid "Open _With…" msgstr "Åpne _med…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Tastatursnarveier" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "_Om Paper Clip" #: src/DateRow.vala:34 msgid "No date set" msgstr "Ingen dato" #: src/Document.vala:117 msgid "Unknown" msgstr "Ukjent" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Sider i én kolonne" #: src/Document.vala:301 msgid "One page at a time" msgstr "Én side om gangen" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Oddetallssider til venstre" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Oddetallssider til høyre" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Oddetallssider til venstre" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Oddetallssider til høyre" #: src/Document.vala:317 msgid "No specific layout" msgstr "Ikke angitt" #: src/Document.vala:326 msgid "Center document's window" msgstr "Midtstill vindu" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Leseretning fra høyre til venstre" #: src/Document.vala:334 msgid "Display document's title" msgstr "Vis dokumenttittel" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Tilpass dokument til vindu" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Skjul menylinje" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Skjul verktøylinjer" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Skjul brukergrensesnitt" #: src/Document.vala:354 msgid "No preferences" msgstr "Ingen " #: src/Document.vala:365 msgid "Adding notes" msgstr "Legge til notater" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Sette inn elementer" #: src/Document.vala:373 msgid "Copying" msgstr "Kopiere" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Hente ut innhold" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Fylle inn skjemaer" #: src/Document.vala:385 msgid "Modifying" msgstr "Endre" #: src/Document.vala:389 msgid "Printing" msgstr "Skrive ut" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Skrive ut i høy oppløsning" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Vend om langsiden" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Vend om kortsiden" #: src/Document.vala:408 msgid "Only single sided" msgstr "Ensidig" #: src/Document.vala:412 msgid "No preference" msgstr "Ikke angitt" #: src/Document.vala:436 msgid "Not compliant" msgstr "Ikke angitt" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Nøkkelord" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Legg til nøkkelord" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Slett nøkkelord" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Fjern dato" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Vis kalender" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "I dag" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "I morgen" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Filtype" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Oppsett" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Utskrift" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Undertype" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Visning" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Tillatelser" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Tittel" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Forfatter" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Laget med" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Emne" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Konvertert med" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Opprettet" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Endret" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Permanente data" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Nøkkelord" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Legg til nøkkelord" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Lagre endringer?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "Dokumentet har ulagrede endringer. Endringer som ikke lagres, vil forsvinne " "permanent." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_Avbryt" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "_Forkast" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Generelt" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Avslutt" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Nytt vindu" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Lukk vindu" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Vis tastatursnarveier" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Redigering" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Åpne" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Lagre" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Lagre som…" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Legg til nøkkelord" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "Passord" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "Dette dokumentet er passordbeskyttet" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "Passord" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "Lås opp" Diego-Ivan-Paper-Clip-c4db98e/po/nl.po000066400000000000000000000205271500377563500175020ustar00rootroot00000000000000# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # # Heimen Stoffels , 2023. msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2023-02-10 17:22+0100\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Dutch\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 22.12.2\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 #, fuzzy msgid "PDF;Metadata;Editor;" msgstr "Pdf-metagegevensbewerker" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Bewerk pdf-metagegevens" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Bewerk de titel, auteur, trefwoorden en meer informatie van uw pdf-bestanden" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "Heimen Stoffels " #: src/window.ui:20 msgid "Select a File" msgstr "Kies een bestand" #: src/window.ui:24 msgid "Open" msgstr "Openen" #: src/window.ui:86 #, fuzzy msgid "Open a Document" msgstr "Openen in documentweergave" #: src/window.ui:95 #, fuzzy msgid "Drag and drop a PDF file here" msgstr "Sleep een pdf-bestand hierheen" #: src/window.ui:153 msgid "_New Window" msgstr "" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "Op_slaan" #: src/window.ui:165 msgid "Save _As…" msgstr "Opslaan _als…" #: src/window.ui:171 #, fuzzy msgid "Open _With…" msgstr "Openen…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Sneltoetsen" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "" #: src/DateRow.vala:34 msgid "No date set" msgstr "Geen datum ingesteld" #: src/Document.vala:117 msgid "Unknown" msgstr "Onbekend" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Alle pagina's in één kolom" #: src/Document.vala:301 msgid "One page at a time" msgstr "Eén pagina per keer" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Oneven pagina's aan linkerzijde" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Oneven pagina's aan rechterzijde" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Twee oneven pagina's aan linkerzijde" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Twee oneven pagina's aan rechterzijde" #: src/Document.vala:317 msgid "No specific layout" msgstr "Geen specifieke indeling" #: src/Document.vala:326 msgid "Center document's window" msgstr "Document centreren" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Leesvolgorde rechts-naar-links" #: src/Document.vala:334 msgid "Display document's title" msgstr "Documentnaam tonen" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Document inpassen in venster" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Menubalk verbergen" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Werkbalken verbergen" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Schermvullende weergave" #: src/Document.vala:354 msgid "No preferences" msgstr "Geen voorkeuren" #: src/Document.vala:365 msgid "Adding notes" msgstr "Aantekeningen maken" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Items invoegen" #: src/Document.vala:373 msgid "Copying" msgstr "Kopiëren" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Extraheren" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Interactieve formulieren invullen" #: src/Document.vala:385 msgid "Modifying" msgstr "Bewerken" #: src/Document.vala:389 msgid "Printing" msgstr "Afdrukken" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Afdrukken met hoge resolutie" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Omdraaien aan lange zijde" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Omdraaien aan korte zijde" #: src/Document.vala:408 msgid "Only single sided" msgstr "Eenzijdig" #: src/Document.vala:412 msgid "No preference" msgstr "Geen voorkeur" #: src/Document.vala:436 msgid "Not compliant" msgstr "Ongeschikt" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Trefwoord" #: src/KeywordList.vala:92 #, fuzzy msgid "Add Keyword" msgstr "Trefwoord toevoegen" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Trefwoord wissen" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Vandaag" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Morgen" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Opmaak" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Indeling" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Duplex" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Subtype" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Weergavevoorkeuren" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Rechten" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Titel" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Auteur" #: src/gtk/document-view.ui:57 #, fuzzy msgid "Creation Software" msgstr "Aanmaakdatum" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Onderwerp" #: src/gtk/document-view.ui:69 #, fuzzy msgid "Conversion Software" msgstr "Aanmaakdatum" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Aanmaakdatum" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Bewerkdatum" #: src/gtk/document-view.ui:94 #, fuzzy msgid "Non-Editable Properties" msgstr "Bewerkbare eigenschappen" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Trefwoorden" #: src/gtk/keyword-list.ui:12 #, fuzzy msgid "Add a keyword" msgstr "Trefwoord toevoegen" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" #: src/gtk/save-changes-dialog.ui:11 #, fuzzy msgid "_Cancel" msgstr "Annuleren" #: src/gtk/save-changes-dialog.ui:12 #, fuzzy msgid "_Discard" msgstr "Niet opslaan" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Algemeen" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Afsluiten" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "" #: src/gtk/shortcut-window.ui:35 #, fuzzy msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "_Sneltoetsen" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Openen" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Opslaan" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Opslaan als…" #: src/gtk/shortcut-window.ui:68 #, fuzzy msgctxt "shortcut window" msgid "Add a keyword" msgstr "Trefwoord toevoegen" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "" #~ msgid "Diego Iván" #~ msgstr "Diego Iván" #~ msgid "Changes that are not saved will be lost permanently" #~ msgstr "Als u ze niet opslaat, worden ze definitief gewist" #~ msgid "Save" #~ msgstr "Opslaan" #~ msgid "Producer" #~ msgstr "Leverancier" #~ msgid "Do you want to save the changes?" #~ msgstr "Wilt u de wijzigingen opslaan?" #~ msgid "_About PDF Metadata Editor" #~ msgstr "Over Pdf-metagegevensbewerker" #~ msgid "Details" #~ msgstr "Details" #~ msgid "Creator" #~ msgstr "Maker" Diego-Ivan-Paper-Clip-c4db98e/po/oc.po000066400000000000000000000220231500377563500174630ustar00rootroot00000000000000# Occitan translation file. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # Quentin PAGÈS, 2023. # msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2024-02-03 13:06+0100\n" "Last-Translator: Quentin PAGÈS\n" "Language-Team: \n" "Language: oc\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.4.2\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Paper Clip" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;Metadonadas;Editor;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Modificar las metadonadas de document PDF" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Modificatz lo títol, l’autor, los mots clau e mai de detalhs de vòstres " "documents PDF" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "Quentin PAGÈS" #: src/window.ui:20 msgid "Select a File" msgstr "Seleccionar un fichièr" #: src/window.ui:24 msgid "Open" msgstr "Dobrir" #: src/window.ui:86 msgid "Open a Document" msgstr "Dobrir un document" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Lisatz e depausatz un document PDF aquí" #: src/window.ui:153 msgid "_New Window" msgstr "_Novèla fenèstra" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Enregistrar" #: src/window.ui:165 msgid "Save _As…" msgstr "Enregistr_ar jos…" #: src/window.ui:171 msgid "Open _With…" msgstr "Dobrir _amb…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Acorchis de clavièr" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "A prepaus de Paper Clip" #: src/DateRow.vala:34 msgid "No date set" msgstr "Cap de data pas definida" #: src/Document.vala:117 msgid "Unknown" msgstr "Desconegut" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Pagina dins una colomna" #: src/Document.vala:301 msgid "One page at a time" msgstr "Una pagina a l’encòp" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Paginas imparas a man esquèrra" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Paginas imparas a man drecha" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Doas paginas imparas a man esquèrra" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Doas paginas imparas a man drecha" #: src/Document.vala:317 msgid "No specific layout" msgstr "Cap de disposicion especifica" #: src/Document.vala:326 msgid "Center document's window" msgstr "Centrar la fenèstra del document" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Òrdre de lectura es esquèrra cap a drecha" #: src/Document.vala:334 msgid "Display document's title" msgstr "Afichar lo títol del document" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Adaptar lo document a la fenèstra" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Amagar la barra de menú fenèstra" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Rescondre las barras d'aisinas fenèstra" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Amagar los elements d’interfàcia" #: src/Document.vala:354 msgid "No preferences" msgstr "Cap de preferéncias" #: src/Document.vala:365 msgid "Adding notes" msgstr "Apondon de nòtas" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Insercion d’elements" #: src/Document.vala:373 msgid "Copying" msgstr "Còpia" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Extraccion del contengut" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Garnir los formularis interactius" #: src/Document.vala:385 msgid "Modifying" msgstr "Modificacion" #: src/Document.vala:389 msgid "Printing" msgstr "Impression" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Impression en nauta resolucion" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Pivotar sul bòrd long" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Pivotar sul bòrd cort" #: src/Document.vala:408 msgid "Only single sided" msgstr "Solament una fàcia unica" #: src/Document.vala:412 msgid "No preference" msgstr "Cap de preferéncia" #: src/Document.vala:436 msgid "Not compliant" msgstr "Non confòrme" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Mot clau" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Apondre un mot clau" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Suprimir lo mot clau" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Suprimir la data" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Afichar lo calendièr" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Uèi" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Deman" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Format" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Disposicion" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Recto-verso" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Sostipe" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Preferéncias del visionador" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Autorizacions" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Títol" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Autor" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Logicial de creacion" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Subjècte" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Logicial de conversion" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Data de creacion" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Data de modificacion" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Proprietats non modificablas" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Mots clau" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Apondre un mot clau" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Enregistrar las modificacions ?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "Los document dobèrts contenon de modificacions pas enregistradas. Las " "modificacions pas enregistradas seràn perdudas per totjorn." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_Anullar" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "_Ignorar" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "General" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Sortir" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Fenèstra novèla" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Tampar la fenèstra" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Acorchis de clavièr" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Editor" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Dobrir" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Enregistrar" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Enregistrar jos…" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Apondre un mot clau" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "Fenèstra pel senhal" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "Aqueste document es chifrat" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "Senhal" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "Deschifrar" #~ msgid "PDF" #~ msgstr "PDF" #~ msgid "Metadata" #~ msgstr "Metadonadas" #~ msgid "Editor" #~ msgstr "Editor" #~ msgid "Paper Clip Version 3.5" #~ msgstr "Paper Clip Version 3.5" #~ msgid "The latest release of Paper Clip brings the following changes:" #~ msgstr "La darrièra version de Paper Clip apòrta los cambiaments seguents :" #~ msgid "Small cosmetic changes to follow GNOME 45 look-and-feel" #~ msgstr "Modificacions cosmeticas petitas per sègre l’aparéncia GNOME 45" #~ msgid "The app can open now multiple files in different windows" #~ msgstr "" #~ "Aquesta aplicacion pòt ara dobrir mantun fichièr dins diferentas fenèstras" #~ msgid "Russian Translation by Ser82-png" #~ msgstr "Traduccion en rus per Ser82-png" #~ msgid "Diego Iván" #~ msgstr "Diego Iván" Diego-Ivan-Paper-Clip-c4db98e/po/pdf-metadata-editor.pot000066400000000000000000000147361500377563500230750ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "" #: src/window.ui:20 msgid "Select a File" msgstr "" #: src/window.ui:24 msgid "Open" msgstr "" #: src/window.ui:86 msgid "Open a Document" msgstr "" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "" #: src/window.ui:153 msgid "_New Window" msgstr "" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "" #: src/window.ui:165 msgid "Save _As…" msgstr "" #: src/window.ui:171 msgid "Open _With…" msgstr "" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "" #: src/DateRow.vala:34 msgid "No date set" msgstr "" #: src/Document.vala:117 msgid "Unknown" msgstr "" #: src/Document.vala:298 msgid "Pages in one column" msgstr "" #: src/Document.vala:301 msgid "One page at a time" msgstr "" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "" #: src/Document.vala:317 msgid "No specific layout" msgstr "" #: src/Document.vala:326 msgid "Center document's window" msgstr "" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "" #: src/Document.vala:334 msgid "Display document's title" msgstr "" #: src/Document.vala:338 msgid "Fit document to window" msgstr "" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "" #: src/Document.vala:354 msgid "No preferences" msgstr "" #: src/Document.vala:365 msgid "Adding notes" msgstr "" #: src/Document.vala:369 msgid "Inserting elements" msgstr "" #: src/Document.vala:373 msgid "Copying" msgstr "" #: src/Document.vala:377 msgid "Extracting contents" msgstr "" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "" #: src/Document.vala:385 msgid "Modifying" msgstr "" #: src/Document.vala:389 msgid "Printing" msgstr "" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "" #: src/Document.vala:408 msgid "Only single sided" msgstr "" #: src/Document.vala:412 msgid "No preference" msgstr "" #: src/Document.vala:436 msgid "Not compliant" msgstr "" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "" Diego-Ivan-Paper-Clip-c4db98e/po/pt_BR.po000066400000000000000000000204071500377563500200740ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # FIRST AUTHOR , YEAR. # Fúlvio Leo , 2024. # msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2024-07-30 15:08-0300\n" "Last-Translator: Fúlvio Leo \n" "Language-Team: Brazilian Portuguese\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Gtranslator 46.1\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Clipe" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;Metadados;Editor;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Edite metadados de documento PDF" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Edite o título, autor, palavras-chave e mais detalhes de seus documentos PDF." #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "Fúlvio Leo " #: src/window.ui:20 msgid "Select a File" msgstr "Selecione um Arquivo" #: src/window.ui:24 msgid "Open" msgstr "Abrir" #: src/window.ui:86 msgid "Open a Document" msgstr "Abrir um Documento" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Arraste e solte um arquivo PDF aqui" #: src/window.ui:153 msgid "_New Window" msgstr "_Nova Janela" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Salvar" #: src/window.ui:165 msgid "Save _As…" msgstr "Salvar _Como..." #: src/window.ui:171 msgid "Open _With…" msgstr "Abrir _Com..." #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Atalhos de Teclado" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "_Sobre Clipe" #: src/DateRow.vala:34 msgid "No date set" msgstr "Nenhuma data definida" #: src/Document.vala:117 msgid "Unknown" msgstr "Desconhecido" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Pages em uma coluna" #: src/Document.vala:301 msgid "One page at a time" msgstr "Uma página por vez" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Páginas ímpares à esquerda" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Páginas ímpares à direita" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Duas páginas ímpares à esquerda" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Duas páginas ímpares à direita" #: src/Document.vala:317 msgid "No specific layout" msgstr "Nenhum layout específico" #: src/Document.vala:326 msgid "Center document's window" msgstr "Centralizar janela do documento" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Ordem de leitura é da direita para a esquerda" #: src/Document.vala:334 msgid "Display document's title" msgstr "Exibit título do documento" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Ajustar documento à janela" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Ocultar barra de menu da janela" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Ocultar barras de ferramentas da janela" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Ocultar elementos da IU" #: src/Document.vala:354 msgid "No preferences" msgstr "Sem preferências" #: src/Document.vala:365 msgid "Adding notes" msgstr "Adicionando notas" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Inseridno elementos" #: src/Document.vala:373 msgid "Copying" msgstr "Copiando" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Extraindo conteúdo" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Preenchendo formulários interativos" #: src/Document.vala:385 msgid "Modifying" msgstr "Modificando " #: src/Document.vala:389 msgid "Printing" msgstr "Imprimir" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Imprimir em alta resolução" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Vire na borda longa" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Vire na borda curta" #: src/Document.vala:408 msgid "Only single sided" msgstr "Apenas um lado" #: src/Document.vala:412 msgid "No preference" msgstr "Sem preferências" #: src/Document.vala:436 msgid "Not compliant" msgstr "Não compatível" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Palavra-chave" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Adicionar Palavra-chave" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Deletar Palavra-chave" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Remover data" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Mostrar Calendário" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Hoje" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Amanhã" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Formatar" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Layout" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Duplex" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Subtipo" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Preferências do Visualizador" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Permissões" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Título" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Autor" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Software de Criação" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Assunto" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Software de Conversão" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Data de Criação" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Data de Modificação" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Propriedades não editáveis" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Palavras-chave" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Adicionar uma palavra-chave" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Salvar mudanças?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "Documentos abertos contém mudanças não salvas. Mudanças não salvas serão " "permanentemente perdidas." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_Cancelar" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "_Descartar" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Geral" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Sair" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Nova janela" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Fechar janela" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Atalhos de Teclado" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Editor" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Abrir" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Salvar" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Salvar Como..." #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Adicionar uma palavra-chave" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "Caixa de Diálogo de Senha" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "Esse documento está criptografado" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "Senha" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "Descriptografar" Diego-Ivan-Paper-Clip-c4db98e/po/ru.po000066400000000000000000000335541500377563500175230ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2024-01-28 18:08+1000\n" "Last-Translator: Ser82-png \n" "Language-Team: \n" "Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.0.1\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Paper Clip" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;Метаданные;Редактор;Metadata;Editor;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Редактирование метаданных документов PDF" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Редактирование названия, автора, ключевых слов и других сведений о " "документах PDF" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "" "Ser82-png , 2023\n" "Aleksandr Melman " #: src/window.ui:20 msgid "Select a File" msgstr "Выберите файл" #: src/window.ui:24 msgid "Open" msgstr "Открыть" #: src/window.ui:86 msgid "Open a Document" msgstr "Откройте документ" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Перетащите сюда файл PDF" #: src/window.ui:153 msgid "_New Window" msgstr "_Новое окно" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Сохранить" #: src/window.ui:165 msgid "Save _As…" msgstr "Сохранить _как…" #: src/window.ui:171 msgid "Open _With…" msgstr "Открыть с _помощью…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "К_омбинации клавиш" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "О пр_иложении" #: src/DateRow.vala:34 msgid "No date set" msgstr "Дата не установлена" #: src/Document.vala:117 msgid "Unknown" msgstr "Неизвестно" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Страницы в один столбец" #: src/Document.vala:301 msgid "One page at a time" msgstr "По одной странице за раз" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Страницы с нечетными номерами слева" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Страницы с нечетными номерами справа" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Две страницы с нечётными номерами слева" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Две страницы с нечётными номерами справа" #: src/Document.vala:317 msgid "No specific layout" msgstr "Нет конкретной компоновки" #: src/Document.vala:326 msgid "Center document's window" msgstr "Выравнивание окна документа по центру" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Порядок чтения - справа налево" #: src/Document.vala:334 msgid "Display document's title" msgstr "Отображать название документа" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Подогнать документ под размеры окна" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Скрыть панель меню" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Скрыть панели инструментов" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Скрыть элементы пользовательского интерфейса" #: src/Document.vala:354 msgid "No preferences" msgstr "Нет параметров" #: src/Document.vala:365 msgid "Adding notes" msgstr "Добавление заметок" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Вставка элементов" #: src/Document.vala:373 msgid "Copying" msgstr "Копирование" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Извлечение содержимого" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Заполнение интерактивных форм" #: src/Document.vala:385 msgid "Modifying" msgstr "Изменение" #: src/Document.vala:389 msgid "Printing" msgstr "Печать" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Печать в высоком разрешении" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Перевернуть по длинной стороне" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Перевернуть по короткой стороне" #: src/Document.vala:408 msgid "Only single sided" msgstr "Только односторонняя" #: src/Document.vala:412 msgid "No preference" msgstr "Нет параметра" #: src/Document.vala:436 msgid "Not compliant" msgstr "Не соответствует" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Ключевое слово" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Добавить ключевое слово" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Удалить ключевое слово" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Удалить дату" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Показать календарь" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Сегодня" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Завтра" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Формат" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Компоновка" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Двусторонняя" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Подтип" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Параметры просмотра" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Разрешения" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Название" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Автор" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Программа создания" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Тема" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Программа преобразования" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Дата создания" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Дата изменения" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Нередактируемые свойства" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Ключевые слова" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Добавьте ключевое слово" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Сохранить изменения?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "Открытые документы содержат несохраненные изменения. Изменения, которые не " "были сохранены, будут безвозвратно потеряны." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_Отменить" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "Н_е сохранять" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Общие" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Выйти" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Новое окно" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Закрыть окно" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Комбинации клавиш" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Редактор" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Открыть" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Сохранить" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Сохранить как…" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Добавить ключевое слово" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "Диалоговое окно ввода пароля" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "Этот документ зашифрован" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "Пароль" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "Расшифровать" #~ msgid "PDF" #~ msgstr "PDF" #~ msgid "Metadata" #~ msgstr "Метаданные" #~ msgid "Editor" #~ msgstr "Редактор" #~ msgid "Paper Clip Version 3.5" #~ msgstr "Paper Clip версия 3.5" #~ msgid "The latest release of Paper Clip brings the following changes:" #~ msgstr "В последнем выпуске Paper Clip произошли следующие изменения:" #~ msgid "Small cosmetic changes to follow GNOME 45 look-and-feel" #~ msgstr "" #~ "Небольшие косметические изменения в соответствии с внешним видом GNOME 45" #~ msgid "The app can open now multiple files in different windows" #~ msgstr "Теперь приложение может открывать несколько файлов в разных окнах" #~ msgid "Russian Translation by Ser82-png" #~ msgstr "Перевод на русский язык от Ser82-png" #~ msgid "Diego Iván" #~ msgstr "Diego Iván" #~ msgid "Paper Clip Version 3.2" #~ msgstr "Paper Clip версия 3.2" #~ msgid "This new version of Paper Clip has the following changes" #~ msgstr "В этой новой версии Paper Clip произошли следующие изменения" #~ msgid "Czech translation" #~ msgstr "Чешский перевод" #~ msgid "Better rendering for thumbnails" #~ msgstr "Улучшение рендеринга миниатюр" #~ msgid "Better cache management" #~ msgstr "Улучшенное управление кэшем" #~ msgid "" #~ "Version 2.0: After a three month development hiatus, Paper Clip sees its " #~ "second release!" #~ msgstr "" #~ "Версия 2.0: После трехмесячного перерыва в разработке Paper Clip выходит " #~ "в свет во второй раз!" #~ msgid "This version includes a nicer UI with:" #~ msgstr "" #~ "Эта версия включает в себя более приятный пользовательский интерфейс со " #~ "следующими изменениями:" #~ msgid "Fix many UI papercuts to match the GNOME HIG" #~ msgstr "" #~ "Многочисленные исправления интерфейса, чтобы он соответствовал GNOME HIG" #~ msgid "The main view now features a thumbnail of the document" #~ msgstr "На главном экране теперь отображается миниатюра документа" #~ msgid "" #~ "The term \"Creator\" has been changed for \"Creation Software\" to avoid " #~ "confusion with \"Author\"" #~ msgstr "" #~ "Пункт «Создатель» был заменен на «Программа создания», чтобы избежать " #~ "путаницы с «Автором»." #~ msgid "" #~ "The main view now handles large document titles as special cases to avoid " #~ "breaking the UI" #~ msgstr "" #~ "Главный экран теперь обрабатывает большие названия документов как особые " #~ "случаи, чтобы избежать нарушения пользовательского интерфейса" #~ msgid "The keyword list now has a nicer UI" #~ msgstr "" #~ "Список ключевых слов теперь имеет более приятный пользовательский " #~ "интерфейс" #~ msgid "" #~ "The details window has been removed, and the non editable properties of " #~ "the document have been moved to the bottom of the view" #~ msgstr "" #~ "Окно сведений было удалено, а нередактируемые свойства документа были " #~ "перемещены в нижнюю часть экрана приложения" #~ msgid "Changes that are not saved will be lost permanently" #~ msgstr "Изменения, которые не были сохранены, будут потеряны навсегда" #~ msgid "Save" #~ msgstr "Сохранить" #~ msgid "Press the “+” button to add a keyword" #~ msgstr "Нажмите кнопку \"+\", чтобы добавить ключевое слово" #~ msgid "Producer" #~ msgstr "Издатель" Diego-Ivan-Paper-Clip-c4db98e/po/tr.po000066400000000000000000000222741500377563500175170ustar00rootroot00000000000000# Turkish translation of io.github.diegoivan.pdf_metadata_editor. # Copyright (C) 2023 io.github.diegoivan.pdf_metadata_editor's COPYRIGHT HOLDER # This file is distributed under the same license as the io.github.diegoivan.pdf_metadata_editor package. # # Sabri Ünal , 2023. # msgid "" msgstr "" "Project-Id-Version: io.github.diegoivan.pdf_metadata_editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2023-10-29 16:40+0300\n" "Last-Translator: Sabri Ünal \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.1\n" "X-POOTLE-MTIME: 1433334275.000000\n" "X-Poedit-SourceCharset: UTF-8\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Paper Clip" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;Metadata;Editor;Üstveri;Üst Veri;Düzenleyici;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "PDF belgesi üst verilerini düzenle" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "PDF belgelerinin başlığını, yazarını, anahtar kelimelerini ve daha fazla " "ayrıntısını düzenle" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "Sabri Ünal , 2023" #: src/window.ui:20 msgid "Select a File" msgstr "Dosya Seç" #: src/window.ui:24 msgid "Open" msgstr "Aç" #: src/window.ui:86 msgid "Open a Document" msgstr "Belge Aç" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "PDF belgesini sürükleyip buraya bırakın" #: src/window.ui:153 msgid "_New Window" msgstr "_Yeni Pencere" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Kaydet" #: src/window.ui:165 msgid "Save _As…" msgstr "Farklı _Kaydet…" #: src/window.ui:171 msgid "Open _With…" msgstr "_Birlikte Aç…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Klavye Kısayolları" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "Paper Clip _Hakkında" #: src/DateRow.vala:34 msgid "No date set" msgstr "Tarih ayarlanmadı" #: src/Document.vala:117 msgid "Unknown" msgstr "Bilinmiyor" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Sayfalar tek sütunda" #: src/Document.vala:301 msgid "One page at a time" msgstr "Her seferinde tek sayfa" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Tek numaralı sayfalar solda" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Tek numaralı sayfalar sağda" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Çift tek numaralı sayfalar solda" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Çift tek numaralı sayfalar sağda" #: src/Document.vala:317 msgid "No specific layout" msgstr "Belirtilmiş bir düzen yok" #: src/Document.vala:326 msgid "Center document's window" msgstr "Belgenin penceresini ortala" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Okuma sırası sağdan sola" #: src/Document.vala:334 msgid "Display document's title" msgstr "Belgenin başlığını görüntüle" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Belgeyi pencereye sığdır" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Pencere menü çubuğunu gizle" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Pencere araç çubuklarını gizle" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Arayüz ögelerini gizle" #: src/Document.vala:354 msgid "No preferences" msgstr "Tercih yok" #: src/Document.vala:365 msgid "Adding notes" msgstr "Not ekleme" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Öge ekleme" #: src/Document.vala:373 msgid "Copying" msgstr "Kopyalama" #: src/Document.vala:377 msgid "Extracting contents" msgstr "İçerik çıkarma" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Etkileşimli formları doldurma" #: src/Document.vala:385 msgid "Modifying" msgstr "Düzenleme" #: src/Document.vala:389 msgid "Printing" msgstr "Yazdırma" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Yüksek çözünürlükte yazdırma" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Uzun kenarda çevirme" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Kısa kenarda çevirme" #: src/Document.vala:408 msgid "Only single sided" msgstr "Sadece tek taraflı" #: src/Document.vala:412 msgid "No preference" msgstr "Tercih yok" #: src/Document.vala:436 msgid "Not compliant" msgstr "Uyumsuz" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Anahtar sözcük" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Anahtar Sözcük Ekle" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Anahtar Sözcük Sil" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Tarihi kaldır" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Takvimi Göster" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Bugün" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Yarın" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Biçim" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Yerleşim Düzeni" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Çift Taraflı" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Alt Tür" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Görüntüleyici Tercihleri" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "İzinler" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Başlık" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Yazar" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Oluşturma Tarihi" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Konu" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Dönüştürme Yazılımı" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Oluşturma Tarihi" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Değiştirilme Tarihi" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Düzenlenemez Özellikler" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Anahtar Sözcükler" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Anahtar sözcük ekle" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Değişiklikler Kaydedilsin Mi?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "Açık belgeler kaydedilmemiş değişiklikler içeriyor. Kaydedilmeyen " "değişiklikler kalıcı olarak yitirilecek." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "İ_ptal" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "_Gözden Çıkar" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Genel" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Çık" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Yeni pencere" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Pencereyi kapat" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Klavye Kısayolları" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Düzenleyici" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Aç" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Kaydet" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Farklı Kaydet…" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Anahtar sözcük ekle" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "" #~ msgid "PDF" #~ msgstr "PDF" #~ msgid "Metadata" #~ msgstr "Üst veri" #~ msgid "Editor" #~ msgstr "Düzenleyici" #~ msgid "Paper Clip Version 3.5" #~ msgstr "Paper Clip 3.5 Sürümü" #~ msgid "The latest release of Paper Clip brings the following changes:" #~ msgstr "Paper Clip'in son sürümü aşağıdaki değişikliklerle geliyor:" #~ msgid "Small cosmetic changes to follow GNOME 45 look-and-feel" #~ msgstr "" #~ "GNOME 45 görünüm ve hissini takip etmek için küçük kozmetik değişiklikler" #~ msgid "The app can open now multiple files in different windows" #~ msgstr "Uygulama artık birden çok dosyayı farklı pencerelerde açabiliyor" #~ msgid "Russian Translation by Ser82-png" #~ msgstr " Rusça çeviri eklendi, teşekkürler Ser82-png" #~ msgid "Diego Iván" #~ msgstr "Diego Iván" Diego-Ivan-Paper-Clip-c4db98e/po/uk.po000066400000000000000000000235711500377563500175120ustar00rootroot00000000000000# Ukrainian translation for pdf-metadata-editor. # Copyright (C) 2024 THE Paper pdf-metadata-editor'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # volkov , 2024. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: https://github.com/Diego-Ivan/Paper-Clip/issues\n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2024-08-21 10:41+0300\n" "Last-Translator: volkov \n" "Language-Team: volkov \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.4.4\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "Скріпка" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;Metadata;Editor;пдф;метадані;редактор;документ;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "Редагуйте метадані PDF документів" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "" "Редагуйте назву, автора, ключові слова та інші деталі ваших PDF документів" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "volkov " #: src/window.ui:20 msgid "Select a File" msgstr "Обрати файл" #: src/window.ui:24 msgid "Open" msgstr "Відкрити" #: src/window.ui:86 msgid "Open a Document" msgstr "Відкрити документ" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "Перетягніть PDF файл сюди" #: src/window.ui:153 msgid "_New Window" msgstr "_Нове вікно" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "_Зберегти" #: src/window.ui:165 msgid "Save _As…" msgstr "Зберегти _як…" #: src/window.ui:171 msgid "Open _With…" msgstr "Відкрити за _допомогою…" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "_Клавіатурні скорочення" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "_Про Скріпка" #: src/DateRow.vala:34 msgid "No date set" msgstr "Дата не встановлена" #: src/Document.vala:117 msgid "Unknown" msgstr "Невідомо" #: src/Document.vala:298 msgid "Pages in one column" msgstr "Сторінки у одній колонці" #: src/Document.vala:301 msgid "One page at a time" msgstr "Одна сторінка за час" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "Непарні сторінки зліва" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "Непарні сторінки справа" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "Дві непарні сторінки ліворуч" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "Дві непарні сторінки праворуч" #: src/Document.vala:317 msgid "No specific layout" msgstr "Не вказано" #: src/Document.vala:326 msgid "Center document's window" msgstr "Центрувати вікно документу" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "Порядок читання справа наліво" #: src/Document.vala:334 msgid "Display document's title" msgstr "Показувати заголовок документу" #: src/Document.vala:338 msgid "Fit document to window" msgstr "Умістити до вікна" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "Сховати заголовок вікна" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "Сховати панель інструментів вікна" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "Сховати елементи інтерфейсу" #: src/Document.vala:354 msgid "No preferences" msgstr "Не вказано" #: src/Document.vala:365 msgid "Adding notes" msgstr "Додавання нотаток" #: src/Document.vala:369 msgid "Inserting elements" msgstr "Вставка елементів" #: src/Document.vala:373 msgid "Copying" msgstr "Копіювання" #: src/Document.vala:377 msgid "Extracting contents" msgstr "Видобування вмісту" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "Заповнення інтерактивних полів" #: src/Document.vala:385 msgid "Modifying" msgstr "Модифікування" #: src/Document.vala:389 msgid "Printing" msgstr "Друкування" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "Друкування у високому розширенні" # Гадки не маю шо це значить #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "Перегортати на довгому краю" # Гадки не маю шо це значить #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "Перегортати на короткому краю" #: src/Document.vala:408 msgid "Only single sided" msgstr "Тільки на одній стороні" #: src/Document.vala:412 msgid "No preference" msgstr "Не вказано" #: src/Document.vala:436 msgid "Not compliant" msgstr "Не відповідає вимогам" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "Ключове слово" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "Додати ключове слово" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "Видалити ключове слово" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "Видалити дату" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "Показати календар" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "Сьогодні" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "Завтра" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "Формат" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "Макет" # Мабуть це якось пов'язано з цим https://en.wikipedia.org/wiki/Duplex_printing #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "Дуплекс" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "Підтип" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "Налаштування перегляду" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "Дозволи" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "Назва" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "Автор" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "Програма створення" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "Тема" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "Програма перетворення" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "Дата створення" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "Дата останньої зміни" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "Не змінні властивості" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "Ключові слова" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "Додати ключове слово" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "Зберегти зміни?" # Скопіював з перекладу до Текстового редактора ГНОМовського #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "" "У відкритих документах містяться незбережені зміни. Ці незбережені зміни " "буде втрачено без можливості відновлення." #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "_Скасувати" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "_Відкинути" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Загальні" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "Вийти" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "Нове вікно" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "Закрити вікно" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Клавіатурні скорочення" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "Редактор" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "Відкрити" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "Зберегти" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "Зберегти як…" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "Додати ключове слово" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "Діалогове вікно паролю" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "Цей документ зашифровано" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "Пароль" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "Дешифрувати" Diego-Ivan-Paper-Clip-c4db98e/po/zh_CN.po000066400000000000000000000173271500377563500200760ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pdf-metadata-editor package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pdf-metadata-editor\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-27 21:42-0600\n" "PO-Revision-Date: 2024-07-27 17:37+0800\n" "Last-Translator: \n" "Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.4.2\n" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:3 #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:7 msgid "Paper Clip" msgstr "回形针" #: data/io.github.diegoivan.pdf_metadata_editor.desktop.in:8 msgid "PDF;Metadata;Editor;" msgstr "PDF;元数据;编辑器;" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:8 msgid "Edit PDF document metadata" msgstr "编辑PDF文件的元数据" #: data/io.github.diegoivan.pdf_metadata_editor.appdata.xml.in:10 msgid "Edit the title, author, keywords and more details of your PDF documents" msgstr "编辑 PDF 文档的标题、作者、关键词和更多详细信息" #. translators: Write your name here :D #: src/application.vala:164 msgid "translator_credits" msgstr "SuGotLand 2024" #: src/window.ui:20 msgid "Select a File" msgstr "选择一个文件" #: src/window.ui:24 msgid "Open" msgstr "打开" #: src/window.ui:86 msgid "Open a Document" msgstr "打开一个文档" #: src/window.ui:95 msgid "Drag and drop a PDF file here" msgstr "将 PDF 文件拖放至此处" #: src/window.ui:153 msgid "_New Window" msgstr "新建窗口(N)" #: src/window.ui:159 src/gtk/save-changes-dialog.ui:13 msgid "_Save" msgstr "保存(_S)" #: src/window.ui:165 msgid "Save _As…" msgstr "另存为(A)" #: src/window.ui:171 msgid "Open _With…" msgstr "用……打开(W)" #: src/window.ui:178 msgid "_Keyboard Shortcuts" msgstr "键盘快捷键(K)" #: src/window.ui:182 msgid "_About Paper Clip" msgstr "关于回形针(A)" #: src/DateRow.vala:34 msgid "No date set" msgstr "未设定日期" #: src/Document.vala:117 msgid "Unknown" msgstr "未知" #: src/Document.vala:298 msgid "Pages in one column" msgstr "单列页面" #: src/Document.vala:301 msgid "One page at a time" msgstr "一次一页" #: src/Document.vala:304 msgid "Odd numbered pages on the left" msgstr "左侧奇数页" #: src/Document.vala:307 msgid "Odd numbered pages on the right" msgstr "右侧奇数页" #: src/Document.vala:310 msgid "Two odd numbered pages on the left" msgstr "左侧两个奇数页" #: src/Document.vala:313 msgid "Two odd numbered pages on the right" msgstr "右侧两个奇数页" #: src/Document.vala:317 msgid "No specific layout" msgstr "无特定布局" #: src/Document.vala:326 msgid "Center document's window" msgstr "文档窗口居中" #: src/Document.vala:330 msgid "Reading order is right to left" msgstr "阅读顺序为从右到左" #: src/Document.vala:334 msgid "Display document's title" msgstr "显示文档标题" #: src/Document.vala:338 msgid "Fit document to window" msgstr "使文档适合窗口" #: src/Document.vala:342 msgid "Hide window menubar" msgstr "隐藏窗口菜单" #: src/Document.vala:346 msgid "Hide window toolbars" msgstr "隐藏窗口工具栏" #: src/Document.vala:350 msgid "Hide UI elements" msgstr "隐藏 UI 元素" #: src/Document.vala:354 msgid "No preferences" msgstr "无首选项" #: src/Document.vala:365 msgid "Adding notes" msgstr "添加注释" #: src/Document.vala:369 msgid "Inserting elements" msgstr "插入元素" #: src/Document.vala:373 msgid "Copying" msgstr "复制" #: src/Document.vala:377 msgid "Extracting contents" msgstr "内容提取" #: src/Document.vala:381 msgid "Filling interactive forms" msgstr "填写交互式表格" #: src/Document.vala:385 msgid "Modifying" msgstr "修改" #: src/Document.vala:389 msgid "Printing" msgstr "打印" #: src/Document.vala:393 msgid "Printing in high resolution" msgstr "以高分辨率打印" #: src/Document.vala:402 msgid "Flip on the long edge" msgstr "在长边翻转" #: src/Document.vala:405 msgid "Flip on the short edge" msgstr "在短边翻转" #: src/Document.vala:408 msgid "Only single sided" msgstr "仅单面" #: src/Document.vala:412 msgid "No preference" msgstr "无偏好" #: src/Document.vala:436 msgid "Not compliant" msgstr "不符合规定" #: src/KeywordList.vala:55 msgid "Keyword" msgstr "关键词" #: src/KeywordList.vala:92 msgid "Add Keyword" msgstr "添加关键词" #: src/KeywordRow.vala:29 msgid "Delete Keyword" msgstr "删除关键词" #: src/gtk/date-row.ui:8 msgid "Remove Date" msgstr "移除日期" #: src/gtk/date-row.ui:20 msgid "Show Calendar" msgstr "显示日历" #: src/gtk/date-row.ui:49 msgid "Today" msgstr "今日" #: src/gtk/date-row.ui:56 msgid "Tomorrow" msgstr "明日" #: src/gtk/details-list.ui:15 msgid "Format" msgstr "格式" #: src/gtk/details-list.ui:25 msgid "Layout" msgstr "布局" #: src/gtk/details-list.ui:35 msgid "Duplex" msgstr "复式" #: src/gtk/details-list.ui:45 msgid "Subtype" msgstr "类型" #: src/gtk/details-list.ui:55 msgid "Viewer Preferences" msgstr "阅读器首选项" #: src/gtk/details-list.ui:62 msgid "Permissions" msgstr "权限" #: src/gtk/document-view.ui:45 msgid "Title" msgstr "标题" #: src/gtk/document-view.ui:51 msgid "Author" msgstr "作者" #: src/gtk/document-view.ui:57 msgid "Creation Software" msgstr "创作软件" #: src/gtk/document-view.ui:63 msgid "Subject" msgstr "主题" #: src/gtk/document-view.ui:69 msgid "Conversion Software" msgstr "转换软件" #: src/gtk/document-view.ui:75 msgid "Creation Date" msgstr "创建日期" #: src/gtk/document-view.ui:81 msgid "Modification Date" msgstr "修改日期" #: src/gtk/document-view.ui:94 msgid "Non-Editable Properties" msgstr "不可编辑属性" #: src/gtk/keyword-list.ui:6 msgid "Keywords" msgstr "关键词" #: src/gtk/keyword-list.ui:12 msgid "Add a keyword" msgstr "添加关键词" #: src/gtk/save-changes-dialog.ui:6 msgid "Save Changes?" msgstr "保存更改?" #: src/gtk/save-changes-dialog.ui:7 msgid "" "Open documents contain unsaved changes. Changes which are not saved will be " "permanently lost." msgstr "打开的文档包含未保存的更改。未保存的更改将永久丢失。" #: src/gtk/save-changes-dialog.ui:11 msgid "_Cancel" msgstr "取消(C)" #: src/gtk/save-changes-dialog.ui:12 msgid "_Discard" msgstr "丢弃(D)" #: src/gtk/shortcut-window.ui:11 msgctxt "shortcut window" msgid "General" msgstr "常规" #: src/gtk/shortcut-window.ui:14 msgctxt "shortcut window" msgid "Quit" msgstr "退出" #: src/gtk/shortcut-window.ui:21 msgctxt "shortcut window" msgid "New window" msgstr "新建窗口" #: src/gtk/shortcut-window.ui:28 msgctxt "shortcut window" msgid "Close window" msgstr "关闭窗口" #: src/gtk/shortcut-window.ui:35 msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "键盘快捷键" #: src/gtk/shortcut-window.ui:43 msgctxt "shortcut window" msgid "Editor" msgstr "编辑器" #: src/gtk/shortcut-window.ui:47 msgctxt "shortcut window" msgid "Open" msgstr "打开" #: src/gtk/shortcut-window.ui:54 msgctxt "shortcut window" msgid "Save" msgstr "保存" #: src/gtk/shortcut-window.ui:61 msgctxt "shortcut window" msgid "Save As…" msgstr "另存为……" #: src/gtk/shortcut-window.ui:68 msgctxt "shortcut window" msgid "Add a keyword" msgstr "添加关键词" #: src/gtk/password-dialog.ui:10 msgid "Password Dialog" msgstr "密码框" #: src/gtk/password-dialog.ui:21 msgid "This Document Is Encrypted" msgstr "此文件已加密" #: src/gtk/password-dialog.ui:37 msgid "Password" msgstr "密码" #: src/gtk/password-dialog.ui:44 msgid "Decrypt" msgstr "解密" Diego-Ivan-Paper-Clip-c4db98e/src/000077500000000000000000000000001500377563500166745ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/src/DateRow.vala000066400000000000000000000042661500377563500211160ustar00rootroot00000000000000/* DateRow.vala * * Copyright 2023 Diego Iván * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ [GtkTemplate (ui = "/io/github/diegoivan/pdf_metadata_editor/gtk/date-row.ui")] public class PaperClip.DateRow : Adw.ActionRow { [GtkChild] private unowned Gtk.Calendar calendar; private DateTime? _date; public DateTime? date { get { return _date; } set { _date = value; if (date == null) { subtitle = _("No date set"); } else { subtitle = date.format ("%x"); datetime_to_calendar (date); } } } [GtkCallback] private void on_clear_button_clicked () { date = null; } [GtkCallback] private void on_day_selected () { date = calendar.get_date (); } [GtkCallback] private void on_today_button_clicked () { var today_time = new DateTime.now_local (); datetime_to_calendar (today_time); date = today_time; } [GtkCallback] private void on_tomorrow_button_clicked () { var tomorrow_time = new DateTime.now_local (); tomorrow_time = tomorrow_time.add_days (1); datetime_to_calendar (tomorrow_time); date = tomorrow_time; } private void datetime_to_calendar (DateTime date_time) { int year, month, day; date_time.get_ymd (out year, out month, out day); calendar.year = year; calendar.month = month - 1; calendar.day = day; } } Diego-Ivan-Paper-Clip-c4db98e/src/DetailsList.vala000066400000000000000000000047251500377563500217720ustar00rootroot00000000000000/* DetailsWindow.vala * * Copyright 2023 Diego Iván * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ [GtkTemplate (ui = "/io/github/diegoivan/pdf_metadata_editor/gtk/details-list.ui")] public class PaperClip.DetailsList : Adw.Bin { [GtkChild] private unowned Adw.ActionRow format_row; [GtkChild] private unowned Adw.ActionRow layout_row; [GtkChild] private unowned Adw.ActionRow duplex_row; [GtkChild] private unowned Adw.ActionRow subtype_row; [GtkChild] private unowned Adw.ActionRow javascript_row; [GtkChild] private unowned Adw.ActionRow attachments_row; [GtkChild] private unowned Adw.ActionRow pages_row; [GtkChild] private unowned StringArrayRow preferences_row; [GtkChild] private unowned StringArrayRow permissions_row; private unowned Document _document; public unowned Document document { get { return _document; } set { _document = value; format_row.subtitle = document.format; layout_row.subtitle = document.layout; duplex_row.subtitle = document.print_duplex; subtype_row.subtitle = document.subtype; preferences_row.string_array = document.viewer_preferences; permissions_row.string_array = document.permissions; attachments_row.subtitle = document.contains_attachments ? _("Yes") : _("No"); javascript_row.subtitle = document.contains_javascript ? _("Yes") : _("No"); if (document.n_pages > 0) { pages_row.visible = true; pages_row.subtitle = document.n_pages.to_string (); } else { pages_row.visible = false; } } } } Diego-Ivan-Paper-Clip-c4db98e/src/Document.vala000066400000000000000000000340341500377563500213230ustar00rootroot00000000000000/* Document.vala * * Copyright 2023-2024 Diego Iván * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ public class PaperClip.Document : Object { private ListStore keyword_list = new ListStore (typeof(StringObject)); private const string PDF_NS = "http://ns.adobe.com/pdf/1.3/"; private const string XMP_NS = "http://ns.adobe.com/xap/1.0/"; private Poppler.Document _document; private Poppler.Document document { get { return _document; } set { _document = value; deserialize_keywords (); } } public File original_file { get; construct; } public File cached_file { get; private set; } [CCode (notify = false)] public bool has_xmp { get; private set; default = false; } public string author { owned get { return document.author ?? ""; } set { document.author = value; } } public string creator { owned get { return document.creator ?? ""; } set { document.creator = value; } } public string subject { owned get { return document.subject ?? ""; } set { document.subject = value; } } public string title { owned get { return document.title ?? ""; } set { document.title = value; } } public string producer { owned get { return document.producer ?? ""; } set { document.producer = value; } } public DateTime creation_date { owned get { return document.creation_datetime; } set { document.creation_datetime = value; } } public DateTime modification_date { owned get { return document.mod_datetime; } set { document.mod_datetime = value; } } [CCode (notify = false)] public ListModel keywords { get { return keyword_list; } } [CCode (notify = false)] public string format { owned get { return document.format ?? _("Unknown"); } } [CCode (notify = false)] public string layout { owned get { return layout_to_string (); } } [CCode (notify = false)] public string print_duplex { owned get { return print_duplex_to_string (); } } [CCode (notify = false)] public string subtype { owned get { return subtype_to_string (); } } [CCode (notify = false)] public string[] viewer_preferences { owned get { return viewer_preferences_to_string_array (); } } [CCode (notify = false)] public string[] permissions { owned get { return permissions_to_string_array (); } } [CCode (notify = false)] public bool contains_attachments { get { return document.has_attachments (); } } [CCode (notify = false)] public bool contains_javascript { get { return document.has_javascript (); } } [CCode (notify = false)] public int n_pages { get { return document.get_n_pages (); } } public signal void keyword_changed (); public async Document (File original_file, string? password = null) throws Error { Object (original_file: original_file); yield load_document (password); try { has_xmp = yield ThreadManager.run_in_thread (load_xmp); } catch (Error e) { critical (e.message); } } // This function is intended to be run from a background thread private bool load_xmp () throws Error { bool success = false; var xmp_file = new Xmp.File (); bool opened_file = xmp_file.open_file (original_file.get_path (), READ | INBACKGROUND | ONLYXMP); if (!opened_file) { debug ("Failed to open file with XMP"); return false; } var xmp_meta = new Xmp.Meta.empty (); success = xmp_file.get_xmp (xmp_meta); if (!success) { debug ("File does not have XMP metadata"); } xmp_file?.close (NOOPTION); return success; } public async void save (string uri) { try { yield ThreadManager.run_in_thread (() => save_thread (uri)); } catch (Error e) { critical (e.message); } } private void save_thread (string uri) throws Error { lock (document) { document.keywords = serialize_keywords (); document.save (uri); } if (has_xmp) { save_xmp (uri); } } private void save_xmp (string uri) throws XmpError { var xmp_file = new Xmp.File (); Xmp.OpenFileOptions options = FORUPDATE | INBACKGROUND; var file = File.new_for_uri (uri); string path = file.get_path (); bool success = xmp_file.open_file (path, options); if (!success) { int error = Xmp.get_error (); throw new XmpError.FAILED_TO_OPEN (@"Failed to open $path XMP metadata. Error: $error"); } var xmp_meta = new Xmp.Meta.empty (); bool has_meta = xmp_file.get_xmp (xmp_meta); if (!has_meta) { throw new XmpError.NO_XMP (@"$path has no XMP Metadata"); } xmp_meta.set_property (Xmp.Namespace.PDF, "Producer", producer, 0x0); xmp_meta.set_property (Xmp.Namespace.XAP, "CreatorTool", creator, 0x0); xmp_meta.set_property (Xmp.Namespace.PDF, "Keywords", document.keywords, 0x0); xmp_meta.set_localized_text (Xmp.Namespace.DC, "title", "x", "x-default", title, 0x0); if (creation_date == null) { xmp_meta.delete_property (Xmp.Namespace.XAP, "CreateDate"); } else { xmp_meta.set_property_date (Xmp.Namespace.XAP, "CreateDate", creation_date, 0x0); } if (modification_date == null) { xmp_meta.delete_property (Xmp.Namespace.XAP, "ModifyDate"); } else { xmp_meta.set_property_date (Xmp.Namespace.XAP, "ModifyDate", modification_date, 0x0); } var metadata_date = new DateTime.now_local (); xmp_meta.set_property_date (Xmp.Namespace.XAP, "MetadataDate", metadata_date, 0x0); if (xmp_file.can_put_xmp (xmp_meta)) { debug ("Writing XMP Metadata"); xmp_file.put_xmp (xmp_meta); } xmp_file.close (SAFEUPDATE); } public void add_keyword (string keyword) { var keyword_object = new StringObject (keyword); keyword_object.notify["str"].connect (() => keyword_changed ()); keyword_list.append (keyword_object); } public bool remove_keyword (string keyword) { for (int i = 0; i < keyword_list.get_n_items (); i++) { var item = (StringObject) keyword_list.get_item (i); if (keyword == item.str) { keyword_list.remove (i); return true; } } return false; } public Poppler.Page get_page_for_index (int index) { return document.get_page (index); } private void deserialize_keywords () { if (document.keywords == null) { return; } string[] keyword_array = document.keywords.split (","); foreach (string keyword in keyword_array) { add_keyword (keyword); } } private string serialize_keywords () { string format = ""; for (int i = 0; i < keyword_list.get_n_items (); i++) { var item = (StringObject) keyword_list.get_item (i); format += "%s".printf (item.str); if (i == keywords.get_n_items () - 1) { break; } format += ","; } return format; } private string layout_to_string () { switch (document.page_layout) { case ONE_COLUMN: return _("Pages in one column"); case SINGLE_PAGE: return _("One page at a time"); case TWO_COLUMN_LEFT: return _("Odd numbered pages on the left"); case TWO_COLUMN_RIGHT: return _("Odd numbered pages on the right"); case TWO_PAGE_LEFT: return _("Two odd numbered pages on the left"); case TWO_PAGE_RIGHT: return _("Two odd numbered pages on the right"); case UNSET: default: return _("No specific layout"); } } private string[] viewer_preferences_to_string_array () { string[] preferences_array = {}; Poppler.ViewerPreferences preferences = document.viewer_preferences; if (CENTER_WINDOW in preferences) { preferences_array += _("Center document's window"); } if (DIRECTION_RTL in preferences) { preferences_array += _("Reading order is right to left"); } if (DISPLAY_DOC_TITLE in preferences) { preferences_array += _("Display document's title"); } if (FIT_WINDOW in preferences) { preferences_array += _("Fit document to window"); } if (HIDE_MENUBAR in preferences) { preferences_array += _("Hide window menubar"); } if (HIDE_TOOLBAR in preferences) { preferences_array += _("Hide window toolbars"); } if (HIDE_WINDOWUI in preferences) { preferences_array += _("Hide UI elements"); } if (UNSET in preferences) { preferences_array += _("No preferences"); } return preferences_array; } private string[] permissions_to_string_array () { string[] permission_array = {}; Poppler.Permissions permission_flags = document.permissions; if (OK_TO_ADD_NOTES in permission_flags) { permission_array += _("Adding notes"); } if (OK_TO_ASSEMBLE in permission_flags) { permission_array += _("Inserting elements"); } if (OK_TO_COPY in permission_flags) { permission_array += _("Copying"); } if (OK_TO_EXTRACT_CONTENTS in permission_flags) { permission_array += _("Extracting contents"); } if (OK_TO_FILL_FORM in permission_flags) { permission_array += _("Filling interactive forms"); } if (OK_TO_MODIFY in permission_flags) { permission_array += _("Modifying"); } if (OK_TO_PRINT in permission_flags) { permission_array += _("Printing"); } if (OK_TO_PRINT_HIGH_RESOLUTION in permission_flags) { permission_array += _("Printing in high resolution"); } return permission_array; } private string print_duplex_to_string () { switch (document.print_duplex) { case DUPLEX_FLIP_LONG_EDGE: return _("Flip on the long edge"); case DUPLEX_FLIP_SHORT_EDGE: return _("Flip on the short edge"); case SIMPLEX: return _("Only single sided"); case NONE: default: return _("No preference"); } } private string subtype_to_string () { switch (document.subtype) { case PDF_A: return "ISO 19005"; case PDF_E: return "ISO 24517"; case PDF_UA: return "ISO 14289"; case PDF_VT: return "ISO 16612"; case PDF_X: return "ISO 15930"; case UNSET: case NONE: default: return _("Not compliant"); } } private async void load_document (string? password) throws Error { cached_file = yield create_copy_from_original (); document = new Poppler.Document.from_gfile (cached_file, password); } private async File create_copy_from_original () throws Error { var launcher = new SubprocessLauncher (NONE); unowned string tmp_dir = Environment.get_tmp_dir (); string destination_path = Path.build_path (Path.DIR_SEPARATOR_S, tmp_dir, "copies"); int res = DirUtils.create_with_parents (destination_path, 0777); if (res < 0) { throw new IOError.FAILED (@"Could not create $destination_path"); } string destination_file = Path.build_filename (destination_path, "%s".printf (original_file.get_basename ())); Subprocess copy_process = launcher.spawn("cp", original_file.get_path(), destination_path); bool success = yield copy_process.wait_async (); if (!success) { critical ("Processed failed"); } var copy_file = File.new_for_path (destination_file); return copy_file; } } public class PaperClip.StringObject : Object { public string str { get; set; default = ""; } public StringObject (string str) { Object (str: str); } } public errordomain PaperClip.XmpError { NO_XMP, FAILED_TO_OPEN; } Diego-Ivan-Paper-Clip-c4db98e/src/DocumentThumbnail.vala000066400000000000000000000072221500377563500231660ustar00rootroot00000000000000/* DocumentThumbnail.vala * * Copyright 2023-2024 Diego Iván * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ public class PaperClip.DocumentThumbnail : Adw.Bin { private Gtk.Image thumbnail_image = new Gtk.Image (); private Services.Thumbnailer thumbnailer = Services.Thumbnailer.get_default (); const int MAX_SIZE = 350; private unowned Document _document; public unowned Document document { get { return _document; } set { _document = value; generate_png.begin (); } } ~DocumentThumbnail () { thumbnail_image.clear (); } construct { child = thumbnail_image; thumbnail_image.add_css_class ("icon-dropshadow"); thumbnailer.max_size = MAX_SIZE; thumbnail_image.pixel_size = MAX_SIZE / 2; } private async void generate_png () { try { Poppler.Page page = document.get_page_for_index (0); string basename = document.original_file.get_basename (); thumbnail_image.clear (); Gdk.Texture thumbnail_texture = yield thumbnailer.create_thumbnail (page, basename); thumbnail_image.paintable = scale_thumbnail (thumbnail_texture); } catch (Error e) { critical (e.message); } } private Gdk.Paintable scale_thumbnail (Gdk.Texture thumbnail_texture) { float scaled_height, scaled_width; compute_scaled_size (thumbnail_texture.height, thumbnail_texture.width, out scaled_height, out scaled_width); var snapshot = new Gtk.Snapshot (); var thumbnail_rectangle = Graphene.Rect () { origin = { 0, 0 }, size = { Math.floorf (scaled_width), Math.floorf (scaled_height) } }; Gsk.ScalingFilter filter = LINEAR; if (scaled_width > thumbnail_texture.width || scaled_height > thumbnail_texture.height) { filter = NEAREST; } else { filter = TRILINEAR; } debug (@"Current filter for thumbnail: $filter"); // Append White Background in case the image is transparent snapshot.append_color ({1, 1, 1, 1}, thumbnail_rectangle); snapshot.append_scaled_texture (thumbnail_texture, filter, thumbnail_rectangle); return snapshot.to_paintable (null); } private void compute_scaled_size (int image_height, int image_width, out float scaled_height, out float scaled_width) { float size = MAX_SIZE * scale_factor; // Translated this from AdwAvatar source code. Works nicely :) if (image_width > image_height) { scaled_height = size; scaled_width = image_width * scaled_height / image_height; } else if (image_height > image_width) { scaled_width = size; scaled_height = image_height * scaled_width / image_width; } else { scaled_width = scaled_height = size; } } } Diego-Ivan-Paper-Clip-c4db98e/src/DocumentView.vala000066400000000000000000000113671500377563500221620ustar00rootroot00000000000000/* DocumentView.vala * * Copyright 2023 Diego Iván * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ [GtkTemplate (ui = "/io/github/diegoivan/pdf_metadata_editor/gtk/document-view.ui")] public class PaperClip.DocumentView : Adw.Bin { [GtkChild] private unowned Adw.EntryRow title_row; [GtkChild] private unowned Adw.EntryRow author_row; [GtkChild] private unowned Adw.EntryRow creator_row; [GtkChild] private unowned Adw.EntryRow subject_row; [GtkChild] private unowned Adw.EntryRow producer_row; [GtkChild] private unowned DateRow creation_row; [GtkChild] private unowned DateRow modification_row; [GtkChild] private unowned KeywordList keyword_list; [GtkChild] private unowned Gtk.Label title_label; [GtkChild] private unowned DetailsList details_list; [GtkChild] private unowned DocumentThumbnail document_thumbnail; [GtkChild] private unowned Gtk.ScrolledWindow scrolled_window; private BindingGroup document_bindings = new BindingGroup (); private Gtk.FileLauncher file_launcher; private Document _document; public Document document { get { return _document; } set { _document = value; document_bindings.source = document; details_list.document = document; document_thumbnail.document = document; keyword_list.document = document; document.bind_property ("title", root, "title", SYNC_CREATE); measure_filename (); title_label.label = document.original_file.get_basename (); title_row.grab_focus_without_selecting (); scrolled_window.vadjustment.value = 0; } } construct { file_launcher = new Gtk.FileLauncher (null) { always_ask = true }; var action_group = new SimpleActionGroup (); insert_action_group ("editor", action_group); setup_bindings (); } private void setup_bindings () { // Bind Rows document_bindings.bind ("title", title_row, "text", SYNC_CREATE | BIDIRECTIONAL); document_bindings.bind ("author", author_row, "text", SYNC_CREATE | BIDIRECTIONAL); document_bindings.bind ("creator", creator_row, "text", SYNC_CREATE | BIDIRECTIONAL); document_bindings.bind ("subject", subject_row, "text", SYNC_CREATE | BIDIRECTIONAL); document_bindings.bind ("producer", producer_row, "text", SYNC_CREATE | BIDIRECTIONAL); document_bindings.bind ("creation-date", creation_row, "date", SYNC_CREATE | BIDIRECTIONAL); document_bindings.bind ("modification-date", modification_row, "date", SYNC_CREATE | BIDIRECTIONAL); document_bindings.bind ("original-file", file_launcher, "file", SYNC_CREATE); } private void measure_filename () { string? basename = document.original_file.get_basename (); if (basename == null) { return; } title_label.remove_css_class ("long-filename"); title_label.ellipsize = NONE; // A long file name that does contain spaces in the name, we will assign an special // class that will reduce the size of the label if (basename.length > 45 && " " in basename) { title_label.add_css_class ("long-filename"); return; } // Now, we have to check for files with long filenames but that do not have any spaces if (basename.length > 21 && !(" " in basename)) { title_label.ellipsize = END; } } public async void open_on_app () { try { bool result = yield file_launcher.launch ((Gtk.Window) root, null); if (!result) { debug ("File was not opened by the user"); } } catch (Error e) { critical (e.message); } } } Diego-Ivan-Paper-Clip-c4db98e/src/DropOverlay.vala000066400000000000000000000032501500377563500220070ustar00rootroot00000000000000/* DropOverlay.vala * * Copyright 2024 Diego Iván M.E * * SPDX-License-Identifier: GPL-3.0-or-later */ public class PaperClip.DropOverlay : Adw.Bin { private Gtk.Overlay internal_overlay = new Gtk.Overlay (); private Gtk.Revealer internal_revealer = new Gtk.Revealer (); private Gtk.DropTarget _drop_target; public Gtk.DropTarget drop_target { get { return _drop_target; } set { _drop_target = value; _drop_target.notify["current-drop"].connect (on_current_drop_notify); } } public Gtk.Widget overlayed { get { return internal_revealer.child; } set { internal_revealer.child = value; } } public new Gtk.Widget child { get { return internal_overlay.child; } set { internal_overlay.child = value; } } construct { ((Adw.Bin) this).child = internal_overlay; internal_overlay.add_overlay (internal_revealer); internal_revealer.can_target = false; internal_revealer.visible = false; internal_revealer.transition_type = CROSSFADE; } private void on_current_drop_notify () { Gdk.Drop drop = drop_target.current_drop; if (drop != null) { internal_revealer.reveal_child = true; internal_revealer.visible = true; overlayed.add_css_class ("overlay-drag-area"); } else { internal_revealer.reveal_child = false; internal_revealer.visible = false; overlayed.remove_css_class ("overlay-drag-area"); } } } Diego-Ivan-Paper-Clip-c4db98e/src/KeywordList.vala000066400000000000000000000071631500377563500220300ustar00rootroot00000000000000/* KeywordList.vala * * Copyright 2023 Diego Iván * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ [GtkTemplate (ui = "/io/github/diegoivan/pdf_metadata_editor/gtk/keyword-list.ui")] public class PaperClip.KeywordList : Adw.PreferencesGroup { [GtkChild] private unowned Gtk.ListBox listbox; public bool is_empty { get; private set; } private Gtk.Widget? empty_state_row = null; private unowned Document _document; public unowned Document document { get { return _document; } set { _document = value; listbox.bind_model (document.keywords, create_keyword_row); document.keywords.items_changed.connect (on_items_changed); on_items_changed (); } } construct { var action_group = new SimpleActionGroup (); var action = new SimpleAction ("add-keyword", null); action.activate.connect (() => document.add_keyword ("")); action_group.add_action (action); insert_action_group ("keyword-list", action_group); } private Gtk.Widget create_keyword_row (Object item) { var row = new KeywordRow () { title = _("Keyword"), document = document, }; item.bind_property ("str", row, "text", SYNC_CREATE | BIDIRECTIONAL); return row; } private void on_items_changed () { if (document.keywords.get_n_items () == 0) { create_default_row (); is_empty = true; return; } int i = 0; Gtk.ListBoxRow? current_row; while ((current_row = listbox.get_row_at_index (i)) != null) { if (current_row == empty_state_row) { listbox.remove (empty_state_row); is_empty = false; break; } if (listbox.get_row_at_index (i+1) == null) { current_row.grab_focus (); } i++; } if (document.keywords.get_n_items () == 1) { listbox.get_first_child ().grab_focus (); } } private void create_default_row () { var center_box = new Gtk.CenterBox (); var label = new Gtk.Label (_("Add Keyword")) { justify = CENTER, wrap = true, margin_top = 12, margin_bottom = 12 }; center_box.center_widget = label; center_box.start_widget = new Gtk.Image.from_icon_name ("list-add-symbolic") { halign = END, hexpand = true, margin_end = 12 }; empty_state_row = new Adw.PreferencesRow () { child = center_box, activatable = true, selectable = false }; listbox.append (empty_state_row); } [GtkCallback] private void on_row_activated (Gtk.ListBoxRow selected_row) { if (selected_row != empty_state_row) { return; } document.add_keyword (""); } } Diego-Ivan-Paper-Clip-c4db98e/src/KeywordRow.vala000066400000000000000000000024501500377563500216560ustar00rootroot00000000000000/* KeywordRow.vala * * Copyright 2023 Diego Iván * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ public class PaperClip.KeywordRow : Adw.EntryRow { public unowned Document document { get; set; } construct { focusable = true; var delete_button = new Gtk.Button.from_icon_name ("cross-symbolic") { valign = CENTER, css_classes = { "flat" }, tooltip_text = _("Delete Keyword") }; add_prefix (delete_button); delete_button.clicked.connect (on_delete_clicked); } private void on_delete_clicked () { document.remove_keyword (text); } } Diego-Ivan-Paper-Clip-c4db98e/src/Models/000077500000000000000000000000001500377563500201175ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/src/Models/AsyncTask.vala000066400000000000000000000006551500377563500226720ustar00rootroot00000000000000/* AsyncTask.vala * * Copyright 2024 Diego Iván * * SPDX-License-Identifier: GPL-3.0-or-later */ [Compact] public class PaperClip.AsyncTask { public TaskStatus status = RUNNING; public SourceFunc callback; public AsyncTask (owned SourceFunc callback) { this.callback = (owned) callback; } } public enum PaperClip.TaskStatus { CANCELLED, SUCCEEDED, RUNNING } Diego-Ivan-Paper-Clip-c4db98e/src/PasswordDialog.vala000066400000000000000000000036641500377563500224740ustar00rootroot00000000000000/* PasswordDialog.vala * * Copyright 2024 Diego Iván * * SPDX-License-Identifier: GPL-3.0-or-later */ public errordomain PaperClip.PasswordDialogError { CANCELLED } [GtkTemplate (ui = "/io/github/diegoivan/pdf_metadata_editor/gtk/password-dialog.ui")] public class PaperClip.PasswordDialog : Adw.Dialog { [GtkChild] private unowned Adw.PasswordEntryRow password_entry; [GtkChild] private unowned Adw.StatusPage status_page; private AsyncTask? task = null; construct { ActionEntry[] action_entries = { { "success", success_task }, { "cancel", cancel_task } }; var action_group = new SimpleActionGroup (); action_group.add_action_entries (action_entries, this); this.insert_action_group ("dialog", action_group); } public async Document decrypt (File file, Gtk.Window? parent, Cancellable? cancellable = null) throws Error { status_page.description = file.get_basename () ?? ""; task = new AsyncTask (decrypt.callback); if (cancellable != null) { cancellable.cancelled.connect (cancel_task); } present (parent); yield; close (); if (task.status == CANCELLED) { throw new PasswordDialogError.CANCELLED ("Use cancelled the operation"); } return yield new Document (file, password_entry.text); } [GtkCallback] private void on_closed () requires (task != null) requires (task.status == RUNNING) { cancel_task (); } [GtkCallback] private void success_task () requires (task != null) requires (task.status == RUNNING) { task.status = SUCCEEDED; Idle.add ((owned) task.callback); } private void cancel_task () requires (task != null) requires (task.status == RUNNING) { task.status = CANCELLED; Idle.add ((owned) task.callback); } } Diego-Ivan-Paper-Clip-c4db98e/src/SaveChangesDialog.vala000066400000000000000000000047451500377563500230620ustar00rootroot00000000000000/* SaveChangesDialog.vala * * Copyright 2023 Diego Iván * * SPDX-License-Identifier: GPL-3.0-or-later */ [GtkTemplate (ui = "/io/github/diegoivan/pdf_metadata_editor/gtk/save-changes-dialog.ui")] public class PaperClip.SaveChangesDialog : Adw.MessageDialog { [GtkChild] private unowned Gtk.ListBox documents_listbox; public ListModel selected_documents { owned get { var list_store = new ListStore (typeof (Services.DocumentManager)); for (unowned Gtk.Widget? row = documents_listbox.get_first_child (); row != null; row = row.get_next_sibling ()) { var document_row = (DocumentRow) row; if (document_row.selected) { list_store.append (document_row.document_manager); } } return list_store; } } public async SaveChangesResponse ask ( Services.DocumentManager[] document_managers, Cancellable? cancellable = null ) { foreach (Services.DocumentManager manager in document_managers) { if (!manager.changed) { continue; } var document_row = new DocumentRow () { document_manager = manager }; documents_listbox.append (document_row); } unowned string dialog_response = yield choose (cancellable); switch (dialog_response) { case "save": return SAVE; case "discard": return DISCARD; case "cancel": default: return CANCEL; } } } public class PaperClip.DocumentRow : Adw.ActionRow { private Services.DocumentManager _document; public Services.DocumentManager document_manager { get { return _document; } set { _document = value; title = document_manager.document.title; subtitle = document_manager.document.original_file.get_basename () ?? ""; check_button.active = true; } } public bool selected { get; set; } private Gtk.CheckButton check_button = new Gtk.CheckButton (); construct { check_button.valign = CENTER; check_button.bind_property ("active", this, "selected", SYNC_CREATE | BIDIRECTIONAL); add_prefix (check_button); } } public enum PaperClip.SaveChangesResponse { CANCEL, DISCARD, SAVE; } Diego-Ivan-Paper-Clip-c4db98e/src/Services/000077500000000000000000000000001500377563500204575ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/src/Services/DocumentManager.vala000066400000000000000000000035111500377563500243750ustar00rootroot00000000000000/* DocumentManager.vala * * Copyright 2023 Diego Iván * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ public sealed class PaperClip.Services.DocumentManager : Object { public bool changed { get; private set; default = false; } private Document _document; public Document document { get { return _document; } set { disconnect_document (); _document = value; changed = false; document.notify.connect (on_doc_changed); document.keywords.items_changed.connect (on_doc_changed); document.keyword_changed.connect (on_doc_changed); } } public async void save (string? uri = null) { yield document.save (uri ?? document.original_file.get_uri ()); changed = false; } private void disconnect_document () { if (document == null) { return; } document.notify.disconnect (on_doc_changed); document.keywords.items_changed.disconnect (on_doc_changed); document.keyword_changed.disconnect (on_doc_changed); } private void on_doc_changed () { changed = true; } } Diego-Ivan-Paper-Clip-c4db98e/src/Services/Thumbnailer.vala000066400000000000000000000116201500377563500235760ustar00rootroot00000000000000/* Thumbnailer.vala * * Copyright 2023 Diego Iván * * SPDX-License-Identifier: GPL-3.0-or-later */ public class PaperClip.Services.Thumbnailer { private float area_threshold = 2.5f; private int _max_size; public int max_size { get { return _max_size; } set { _max_size = value; } } private Gdk.MemoryFormat? _default_format = null; private Gdk.MemoryFormat default_format { get { if (_default_format == null) { if (BYTE_ORDER == LITTLE_ENDIAN) { _default_format = B8G8R8A8_PREMULTIPLIED; } else { _default_format = A8R8G8B8_PREMULTIPLIED; } } return _default_format; } } protected static Thumbnailer? instance = null; public static Thumbnailer get_default () { if (instance == null) { instance = new Thumbnailer (); } return instance; } [CCode (has_construct_function = false)] protected Thumbnailer () { } public async Gdk.Texture create_thumbnail (Poppler.Page page, string basename) throws Error { float max_area = max_size * max_size * area_threshold; double height, width, image_area; page.get_size (out width, out height); image_area = width * height; var surface = new Cairo.ImageSurface (Cairo.Format.ARGB32, (int) width, (int) height); var context = new Cairo.Context (surface); // Lets render in a separate thread, it is expensive. yield ThreadManager.run_in_thread (() => page.render (context)); Gdk.Texture retval; if (image_area >= max_area) { debug ("Image is too big! Loading it in a reduced size"); retval = yield ThreadManager.run_in_thread ( () => load_scaled (surface, basename)); } else { debug ("Loading image in its default size"); retval = yield ThreadManager.run_in_thread (() => load_memory (surface)); } return retval; } private Gdk.Texture load_scaled (Cairo.ImageSurface surface, string basename) throws Error { float max_area = max_size * max_size * area_threshold; int width = surface.get_width (), height = surface.get_height (); string save_path = create_cache_file (basename); Cairo.Status status = surface.write_to_png (save_path); if (status != SUCCESS) { throw new ThumbnailError.FAILED_EXPORT (@"Failed to export $save_path: $status"); } float scale_factor = 0.1f; for (; scale_factor < 0.8f; scale_factor+=0.1f) { float scaled_area = height * width * scale_factor; if (scaled_area >= max_area) { break; } } debug (@"Loading image at scale $scale_factor"); float scaled_height = height * scale_factor, scaled_width = width * scale_factor; debug (@"Height: $height -> $scaled_height. Width: $width -> $scaled_width"); var pixbuf = new Gdk.Pixbuf.from_file_at_size (save_path, (int) scaled_width, (int) scaled_height); var texture = Gdk.Texture.for_pixbuf (pixbuf); return texture; } private string? create_cache_file (string basename) throws Error { string destination_path = Path.build_path (Path.DIR_SEPARATOR_S, Environment.get_tmp_dir (), "thumbnails"); int result = DirUtils.create_with_parents (destination_path, 0777); if (result < 0) { throw new ThumbnailError.FAILED_TO_CACHE (@"Unable to create tmp path $destination_path"); } string destination_file = Path.build_filename (destination_path, "%s.png".printf (basename)); var file = File.new_for_path (destination_file); if (!file.query_exists ()) { file.create (NONE); } return destination_file; } private Gdk.Texture load_memory (Cairo.ImageSurface surface) throws Error { int height = surface.get_height (), width = surface.get_width (); size_t size = height * width * 4; var bytes = new Bytes.take (create_sized_copy (surface.get_data (), size)); var memory_texture = new Gdk.MemoryTexture (width, height, default_format, bytes, surface.get_stride ()); return memory_texture; } private uint8[] create_sized_copy ([CCode (array_length = false)]uint8[] data, size_t size) { uint8[] copy = new uint8[size]; for (size_t i = 0; i < size; i++) { copy[i] = data[i]; } return copy; } } public errordomain PaperClip.ThumbnailError { FAILED_EXPORT, FAILED_TO_CACHE } Diego-Ivan-Paper-Clip-c4db98e/src/StringArrayRow.vala000066400000000000000000000033061500377563500225000ustar00rootroot00000000000000/* StringArrayRow.vala * * Copyright 2023 Diego Iván * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ public class PaperClip.StringArrayRow : Adw.ExpanderRow { private ContentRow content_row = new ContentRow (); public string[] string_array { set { content_row.contents = ""; foreach (string item in value) { content_row.contents += "• %s\n".printf (item); } } } construct { add_row (content_row); } } public class PaperClip.ContentRow : Gtk.ListBoxRow { private Gtk.Label content_label; public string contents { get { return content_label.label; } set { content_label.label = value; } } construct { content_label = new Gtk.Label ("") { css_classes = { "dim-label" }, halign = START, margin_start = 12, margin_top = 18, }; content_label.add_css_class ("dim-label"); child = content_label; } } Diego-Ivan-Paper-Clip-c4db98e/src/ThreadManager.vala000066400000000000000000000033501500377563500222440ustar00rootroot00000000000000/* ThreadManager.vala * * Copyright 2023 Diego Iván * * SPDX-License-Identifier: GPL-3.0-or-later */ namespace ThreadManager { private static ThreadPool thread_pool; private static bool initiated = false; private static bool supported = true; public delegate G ThreadFunc () throws Error; public delegate void TaskFunc (); [Compact] private class Task { public TaskFunc task_func; public Task (owned TaskFunc task_func_) { task_func = (owned) task_func_; } public void run () { task_func (); } } private void init () { if (initiated) { return; } try { thread_pool = new ThreadPool.with_owned_data (run_task, 1, false); } catch (Error e) { supported = false; critical (e.message); } initiated = true; } private void run_task (owned Task task) { task.run (); } public async G run_in_thread (owned ThreadFunc thread_func) throws Error { if (!initiated) { init (); } if (!supported) { critical ("Thread Creation not supported in this context. Running synchronously..."); return thread_func (); } Error? error = null; G retval = null; thread_pool.add (new Task (() => { try { retval = thread_func (); } catch (Error e) { error = e; } Idle.add (run_in_thread.callback); })); yield; if (error != null) { throw error; } return retval; } } Diego-Ivan-Paper-Clip-c4db98e/src/application.vala000066400000000000000000000160551500377563500220530ustar00rootroot00000000000000/* application.vala * * Copyright 2023 Diego Iván * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ public class PaperClip.Application : Adw.Application { private string? debug_information = null; public Application () { Object (application_id: "io.github.diegoivan.pdf_metadata_editor", flags: ApplicationFlags.HANDLES_OPEN); Intl.setlocale (LocaleCategory.ALL, ""); Intl.bindtextdomain (Config.GETTEXT_PACKAGE, Config.GNOMELOCALEDIR); Intl.textdomain (Config.GETTEXT_PACKAGE); } construct { ActionEntry[] action_entries = { { "about", this.on_about_action }, { "shortcuts", shortcuts_action }, { "query-quit", on_query_quit_action }, { "new-window", on_new_window_action } }; this.add_action_entries (action_entries, this); set_accels_for_action ("app.shortcuts", { "question" }); set_accels_for_action ("app.query-quit", { "q" }); set_accels_for_action ("app.new-window", { "n" }); OptionEntry[] option_entries = { { "new-window", 'w', OptionFlags.NONE, OptionArg.NONE, null, N_("Open a new window"), null }, { "version", 'v', OptionFlags.NONE, OptionArg.NONE, null, N_("Print version information and exit"), null }, {} }; this.add_main_option_entries (option_entries); } public override int handle_local_options (GLib.VariantDict options) { if (options.contains ("new-window")) { try { this.register (); } catch (Error e) { critical (e.message); } if (this.get_is_remote ()) { this.activate_action ("new-window", null); return 0; } } if (options.contains ("version")) { stderr.printf (@"Paper Clip $(Config.VERSION)\n"); return 0; } return -1; } public override void activate () { base.activate (); Gtk.Window? win = active_window; if (win == null) { win = new PaperClip.Window (this); } win.present (); } public override void startup () { base.startup (); Xmp.init (); } public override void shutdown () { base.shutdown (); Xmp.terminate (); } public override void open (File[] files, string hint) { if (files.length < 1) { return; } foreach (File file in files) { try { FileInfo info = file.query_info ("standard::*", NOFOLLOW_SYMLINKS); string? content_type = info.get_content_type (); if (content_type != "application/pdf") { critical (@"File $(file.get_path ()) is not a PDF"); continue; } var window = new Window (this); window.open_command_line_file (file); window.present (); } catch (Error e) { critical (e.message); } } activate (); } private void shortcuts_action () { var window = (Window) active_window; window.shortcuts (); } private void on_new_window_action () { var window = new PaperClip.Window (this); window.present (); } private void on_query_quit_action () { on_query_quit_action_async.begin (); } private async void on_query_quit_action_async () { Services.DocumentManager[] managers = {}; foreach (unowned Gtk.Window toplevel in Gtk.Window.list_toplevels ()) { var window = toplevel as Window; if (window == null || !window.document_manager.changed) { continue; } managers += window.document_manager; } if (managers.length < 1) { quit (); return; } var changes_dialog = new SaveChangesDialog () { transient_for = active_window, modal = true }; SaveChangesResponse response = yield changes_dialog.ask (managers, null); switch (response) { case SAVE: yield save_unsaved_managers (changes_dialog); break; case DISCARD: quit (); break; case CANCEL: default: return; } } private async void save_unsaved_managers (SaveChangesDialog changes_dialog) { ListModel unsaved_documents = changes_dialog.selected_documents; for (int i = 0; i < unsaved_documents.get_n_items (); i++) { var unsaved_manager = (Services.DocumentManager) unsaved_documents.get_item (i); yield unsaved_manager.save (); } quit (); } private void on_about_action () { string[] developers = { "Diego Iván M.E" }; string[] artists = { "Brage Fuglseth" }; var about = new Adw.AboutDialog () { application_icon = Config.APP_ID, application_name = "Paper Clip", copyright = "© 2023-2024 Diego Iván M.E", developer_name = "Diego Iván M.E", debug_info = generate_debug_info (), developers = developers, artists = artists, issue_url = "https://github.com/Diego-Ivan/Paper-Clip/issues", license_type = GPL_3_0, // translators: Write your name here :D translator_credits = _("translator_credits"), version = Config.VERSION, website = "https://github.com/Diego-Ivan/Paper-Clip", }; about.present (this.active_window); } private string? generate_debug_info () { if (debug_information != null) { return debug_information; } bool under_flatpak = FileUtils.test ("/.flatpak-info", EXISTS); debug_information = @"Paper Clip $(Config.VERSION) Libraries: Gtk $(Gtk.get_major_version ()).$(Gtk.get_minor_version ()).$(Gtk.get_micro_version ()) (Runtime) Libadwaita: $(Adw.VERSION_S) (Compile Time) Poppler: $(Poppler.get_version ()) (Compile Time) Exempi: $(Config.EXEMPI_VERSION) GdkPixbuf $(Gdk.PIXBUF_VERSION) (Compile Time) Running under Flatpak? $under_flatpak OS Information? $(Environment.get_os_info (OsInfoKey.PRETTY_NAME))"; return debug_information; } } Diego-Ivan-Paper-Clip-c4db98e/src/gtk/000077500000000000000000000000001500377563500174615ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/src/gtk/chain-link-symbolic.svg000066400000000000000000000013671500377563500240450ustar00rootroot00000000000000 Diego-Ivan-Paper-Clip-c4db98e/src/gtk/cross-symbolic.svg000066400000000000000000000014001500377563500231450ustar00rootroot00000000000000 Diego-Ivan-Paper-Clip-c4db98e/src/gtk/date-row.ui000066400000000000000000000047011500377563500215440ustar00rootroot00000000000000 Diego-Ivan-Paper-Clip-c4db98e/src/gtk/details-list.ui000066400000000000000000000062141500377563500224210ustar00rootroot00000000000000 Diego-Ivan-Paper-Clip-c4db98e/src/gtk/document-view.ui000066400000000000000000000111561500377563500226120ustar00rootroot00000000000000 Diego-Ivan-Paper-Clip-c4db98e/src/gtk/entry-clear-symbolic.svg000066400000000000000000000015701500377563500242510ustar00rootroot00000000000000 Diego-Ivan-Paper-Clip-c4db98e/src/gtk/key-symbolic.svg000066400000000000000000000040461500377563500226150ustar00rootroot00000000000000 Diego-Ivan-Paper-Clip-c4db98e/src/gtk/keyword-list.ui000066400000000000000000000025661500377563500224660ustar00rootroot00000000000000 Diego-Ivan-Paper-Clip-c4db98e/src/gtk/password-dialog.ui000066400000000000000000000062131500377563500231210ustar00rootroot00000000000000 Diego-Ivan-Paper-Clip-c4db98e/src/gtk/rich-text-symbolic.svg000066400000000000000000000017101500377563500237270ustar00rootroot00000000000000 Diego-Ivan-Paper-Clip-c4db98e/src/gtk/save-changes-dialog.ui000066400000000000000000000024321500377563500236220ustar00rootroot00000000000000 Diego-Ivan-Paper-Clip-c4db98e/src/gtk/shortcut-window.ui000066400000000000000000000061271500377563500232060ustar00rootroot00000000000000 True shortcuts 10 General Quit <control>q New window <control>n Close window <control>w Keyboard Shortcuts <control>question Editor Open <control>o Save <control>s Save As… <control><shift>s Add a keyword <control>Return Diego-Ivan-Paper-Clip-c4db98e/src/main.vala000066400000000000000000000015201500377563500204630ustar00rootroot00000000000000/* main.vala * * Copyright 2023 Diego Iván * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ int main (string[] args) { var app = new PaperClip.Application (); return app.run (args); } Diego-Ivan-Paper-Clip-c4db98e/src/meson.build000066400000000000000000000034641500377563500210450ustar00rootroot00000000000000hidden_scribe_sources = [ 'main.vala', 'application.vala', 'window.vala', 'Document.vala', 'DocumentView.vala', 'DateRow.vala', 'DropOverlay.vala', 'KeywordRow.vala', 'DetailsList.vala', 'SaveChangesDialog.vala', 'StringArrayRow.vala', 'DocumentThumbnail.vala', 'KeywordList.vala', 'PasswordDialog.vala', 'ThreadManager.vala', # Models 'Models/AsyncTask.vala', # Services 'Services/DocumentManager.vala', 'Services/Thumbnailer.vala', ] exempi_dep = dependency('exempi-2.0') cc = meson.get_compiler('c') m_dep = cc.find_library('m', required : false) hidden_scribe_deps = [ dependency('gtk4', version:'>=4.10'), dependency('libadwaita-1'), dependency('poppler-glib'), exempi_dep, m_dep, ] conf = configuration_data() conf.set_quoted('APP_ID', app_id) conf.set_quoted('APP_NAME', 'Paper Clip') conf.set_quoted('G_LOG_DOMAIN', 'Paper Clip') conf.set_quoted('VERSION', meson.project_version()) conf.set_quoted('GETTEXT_PACKAGE', meson.project_name()) conf.set_quoted('DATADIR', join_paths(get_option('prefix'), get_option('datadir'))) conf.set_quoted('GNOMELOCALEDIR', join_paths(get_option('prefix'), get_option('localedir'))) conf.set_quoted('EXEMPI_VERSION', exempi_dep.version () + ' (Compile Time)') configure_file(output: 'config.h', configuration: conf) add_project_arguments( '-include', 'config.h', '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), language: 'c' ) hidden_scribe_sources += gnome.compile_resources('pdf_metadata_editor-resources', 'pdf-metadata-editor.gresource.xml', c_name: 'hidden_scribe' ) executable('pdf-metadata-editor', hidden_scribe_sources, vala_args: [ meson.project_source_root() + '/vapi/Config.vapi', '--vapidir', meson.project_source_root() / 'vapi', ], dependencies: hidden_scribe_deps, install: true, ) Diego-Ivan-Paper-Clip-c4db98e/src/pdf-metadata-editor.gresource.xml000066400000000000000000000024361500377563500252330ustar00rootroot00000000000000 style.css window.ui gtk/document-view.ui gtk/date-row.ui gtk/details-list.ui gtk/keyword-list.ui gtk/save-changes-dialog.ui gtk/shortcut-window.ui gtk/password-dialog.ui gtk/entry-clear-symbolic.svg gtk/cross-symbolic.svg gtk/rich-text-symbolic.svg gtk/chain-link-symbolic.svg gtk/key-symbolic.svg Diego-Ivan-Paper-Clip-c4db98e/src/style.css000066400000000000000000000003001500377563500205370ustar00rootroot00000000000000.long-filename { font-size: 140%; } stack:drop(active) { box-shadow: none; } .overlay-drag-area { border-radius: 8px; margin: 24px; background-color: alpha(@accent_color, 0.35); } Diego-Ivan-Paper-Clip-c4db98e/src/window.ui000066400000000000000000000164661500377563500205570ustar00rootroot00000000000000
_New Window app.new-window
_Save win.save <control>s action-disabled Save _As… win.save-as <control><shift>s action-disabled Open _With… win.open-with action-disabled
_Keyboard Shortcuts app.shortcuts _About Paper Clip app.about
Diego-Ivan-Paper-Clip-c4db98e/src/window.vala000066400000000000000000000256131500377563500210570ustar00rootroot00000000000000/* window.vala * * Copyright 2023-2024 Diego Iván * * 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 . * * SPDX-License-Identifier: GPL-3.0-or-later */ namespace PaperClip { [GtkTemplate (ui = "/io/github/diegoivan/pdf_metadata_editor/window.ui")] public class Window : Adw.ApplicationWindow { [GtkChild] private unowned DocumentView doc_view; [GtkChild] private unowned Gtk.Stack view_stack; [GtkChild] private unowned Gtk.MenuButton menu_button; [GtkChild] private unowned Adw.ToastOverlay toast_overlay; [GtkChild] private unowned DropOverlay drop_overlay; [GtkChild] private unowned Gtk.ProgressBar progress_bar; public WindowState state { get; set; default = NONE; } public Services.DocumentManager document_manager { get; default = new Services.DocumentManager (); } private File? dropped_file { get; set; default = null; } public Window (Gtk.Application app) { Object (application: app); action_set_enabled ("win.save", false); action_set_enabled ("win.save-as", false); action_set_enabled ("win.open-with", false); } static construct { typeof (DropOverlay).ensure (); } construct { ActionEntry[] entries = { { "open", on_open_action }, { "open-with", on_open_with_action }, { "save", save_file_action }, { "save-as", save_file_as_action }, { "main-menu", on_main_menu_action } }; var action_group = new SimpleActionGroup (); action_group.add_action_entries (entries, this); insert_action_group ("win", action_group); // Controller of Drag and Drop var drop_target = new Gtk.DropTarget (typeof(File), COPY); drop_target.drop.connect (on_file_dropped); view_stack.add_controller (drop_target); drop_overlay.drop_target = drop_target; } private bool on_file_dropped (Value value) { var file = (File) value; try { FileInfo info = file.query_info ("standard::*", NOFOLLOW_SYMLINKS); string? content_type = info.get_content_type (); if (content_type != "application/pdf") { critical ("File is not a PDF"); return false; } dropped_file = file; state = OPENING_DROPPED; open_dropped_file.begin (); } catch (Error e) { critical (e.message); return false; } return true; } private async void open_dropped_file () { if (document_manager.changed) { show_unsaved_warning.begin (); } else { load_dropped_file.begin (); } } private async void load_dropped_file () { pulse_progress_bar (); yield load_document_to_view (dropped_file); hide_progress_bar_animation (); dropped_file = null; state = NONE; } public void open_command_line_file (File file) requires (file.query_exists ()) { state = OPENING_FILE; dropped_file = file; open_dropped_file.begin (); } private void on_open_action () { state = OPENING_FILE; if (document_manager.changed) { show_unsaved_warning.begin (); } else { open_file.begin (); } } private async void open_file () { var file_dialog = new Gtk.FileDialog (); var pdf_filter = new Gtk.FileFilter () { name = "PDF" }; pdf_filter.add_mime_type ("application/pdf"); var filters = new ListStore (typeof (Gtk.FileFilter)); filters.append (pdf_filter); file_dialog.filters = filters; try { File opened_file = yield file_dialog.open (this, null); pulse_progress_bar (); yield load_document_to_view (opened_file); } catch (Error e) { critical (e.message); } state = NONE; } private void on_open_with_action () { doc_view.open_on_app.begin (); } private async void load_document_to_view (File file) { try { var doc = yield create_document (file); document_manager.document = doc_view.document = doc; action_set_enabled ("win.save", true); action_set_enabled ("win.save-as", true); action_set_enabled ("win.open-with", true); view_stack.visible_child_name = "editor"; } catch (Error e) { if (e is Poppler.Error.ENCRYPTED) { var toast = new Adw.Toast ( _("Failed to open the document. The provided password is incorrect.") ); toast_overlay.add_toast (toast); } critical (e.message); } hide_progress_bar_animation (); } private async Document create_document (File file) throws Error { Document? doc = null; try { doc = yield new Document (file); } catch (Error e) { if (!(e is Poppler.Error.ENCRYPTED)) { throw e; } } if (doc != null) { return doc; } var dialog = new PasswordDialog (); return yield dialog.decrypt (file, this, null); } private void save_file_action () { save_file.begin (); } private async void save_file () { if (document_manager.document == null || !document_manager.changed) { return; } file_save_animation (); yield document_manager.save (document_manager.document.original_file.get_uri ()); proceed_with_state (); state = NONE; } private void save_file_as_action () { save_file_as.begin (); } private async void save_file_as () { if (document_manager.document == null) { return; } var file_dialog = new Gtk.FileDialog () { initial_name = document_manager.document.original_file.get_basename () }; var pdf_filter = new Gtk.FileFilter () { name = "PDF" }; pdf_filter.add_mime_type ("application/pdf"); var filters = new ListStore (typeof (Gtk.FileFilter)); filters.append (pdf_filter); file_dialog.filters = filters; try { File file = yield file_dialog.save (this, null); file_save_animation (); yield document_manager.save (file.get_uri ()); proceed_with_state (); } catch (Error e) { critical (e.message); } state = NONE; } private void file_save_animation () { var property_target = new Adw.PropertyAnimationTarget (progress_bar, "fraction"); var animation = new Adw.TimedAnimation (progress_bar, 0, 1, 200, property_target) { easing = EASE_IN_OUT_SINE }; animation.done.connect (hide_progress_bar_animation); progress_bar.fraction = 0; progress_bar.opacity = 1; animation.play (); } public void shortcuts () { var builder = new Gtk.Builder.from_resource ("/io/github/diegoivan/pdf_metadata_editor/gtk/shortcut-window.ui"); var shortcuts_window = builder.get_object ("shortcut_window") as Gtk.ShortcutsWindow; if (shortcuts_window == null) { critical ("Failed to load shortcuts"); return; } shortcuts_window.transient_for = this; shortcuts_window.show (); } private void on_main_menu_action () { menu_button.popup (); } private void hide_progress_bar_animation () { var property_target = new Adw.PropertyAnimationTarget (progress_bar, "opacity"); var animation = new Adw.TimedAnimation (progress_bar, 1, 0, 200, property_target) { easing = EASE_IN_OUT_SINE }; animation.play (); } private void pulse_progress_bar () { progress_bar.opacity = 1; progress_bar.pulse (); } [GtkCallback] private bool on_close_request () { if (!document_manager.changed || state == CLOSING) { state = NONE; return false; } quit_and_save.begin (); return true; } private async void quit_and_save () { state = CLOSING; yield show_unsaved_warning (); } private async void show_unsaved_warning () { var save_changes_dialog = new SaveChangesDialog () { transient_for = this, modal = true }; SaveChangesResponse response = yield save_changes_dialog.ask ({document_manager}, null); if (response == CANCEL) { state = NONE; return; } if (response == SAVE) { yield save_file (); return; } proceed_with_state (); } private void proceed_with_state () { switch (state) { case NONE: return; case OPENING_FILE: open_file.begin (); break; case OPENING_DROPPED: load_dropped_file.begin (); break; case CLOSING: this.close (); break; } } } } public enum PaperClip.WindowState { NONE, OPENING_FILE, CLOSING, OPENING_DROPPED } Diego-Ivan-Paper-Clip-c4db98e/vapi/000077500000000000000000000000001500377563500170445ustar00rootroot00000000000000Diego-Ivan-Paper-Clip-c4db98e/vapi/Config.vapi000066400000000000000000000005421500377563500211330ustar00rootroot00000000000000[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "config.h")] namespace Config { public const string VERSION; public const string APP_ID; public const string APP_NAME; public const string GETTEXT_PACKAGE; public const string GNOMELOCALEDIR; public const string DATADIR; public const string EXEMPI_VERSION; } Diego-Ivan-Paper-Clip-c4db98e/vapi/exempi-2.0.vapi000066400000000000000000000530721500377563500215200ustar00rootroot00000000000000/* * exempi * * Original Authors of xmp.h * Copyright (C) 2007-2023 Hubert Figuière * Copyright 2002-2007 Adobe Systems Incorporated * All rights reserved. * * VAPI Authors: * Copyright (c) 2023-2024 Diego Iván M.E * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1 Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2 Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * * 3 Neither the name of the Authors, nor the names of its * contributors may be used to endorse or promote products derived * from this software wit hout specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ [CCode (cheader_filename = "exempi/xmp.h")] namespace Xmp { [CCode (has_typedef = false)] public delegate int DumpCallback (G object, string contents); [Flags] [CCode (cprefix = "XMP_OPEN_", has_type_id = false)] public enum OpenFileOptions { NOOPTION, READ, FORUPDATE, ONLYXMP, CACHENAIL, STRICTLY, USESMARTHANDLER, USEPACKETSCANNING, LIMITSCANNING, REPAIR_FILE, OPTIMIZEFILELAYOUT, INBACKGROUND; } [Flags] [CCode (cprefix = "XMP_CLOSE_", has_type_id = false)] public enum CloseFileOptions { NOOPTION, SAFEUPDATE; } [CCode (cprefix = "XMP_FT_")] public enum FileType { PDF, PS, EPS, TIFF, GIF, PNG, WEBP, SWF, FLA, FLV, MOV, AVI, CIN, WAV, MP3, SES, CEL, MPEG, MPEG2, MPEG4, MXF, WMAV, AIFF, RED, ARRI, HEIF, P2, XDCAM_FAM, XDCAM_SAM, XDCAM_EX, AVCHD, SONY_HDV, CANON_XF, AVC_ULTRA, HTML, XML, TEXT, SVG, PHOTOSHOP, ILLUSTRATOR, INDESIGN, AEPROJECT, AEPROJTEMPLATE, AEFILTERPRESET, ENCOREPROJECT, PREMIERPROJECT, PREMIERTITLE, UCF, UNKNOWN; [CCode (cname = "xmp_files_get_format_info")] public bool get_format_info (out FileFormatOptions options); [CCode (cname = "xmp_files_check_file_format")] public static FileType check_file_format (string file_path); } [Flags] [CCode (cprefix = "XMP_ITER_")] public enum IterOptions { CLASSMASK, PROPERTIES, ALIASES, NAMESPACES, JUSTCHILDREN, JUSTLEAFNODES, JUSTLEAFNAME, INCLUDEALIASES, OMITQUALIFIERS } [Flags] [CCode (cprefix = "XMP_ITER_SKIP")] public enum IterSkipOptions { SUBTREE, SIBLINGS } [Flags] [CCode (cprefix = "XMP_FMT_")] public enum FileFormatOptions { CAN_INJECT_XMP, CAN_EXPAND, CAN_REWRITE, PREFERS_IN_PLACE, CAN_RECONCILE, ALLOWS_ONLY_XMP, RETURNS_RAW_PACKET, HANDLER_OWNS_FILE, ALLOW_SAFE_UPDATE, NEEDS_READONLY_PACKET, USE_SIDECAR_XMP, FOLDER_BASED_FORMAT } [Flags] [CCode (cprefix = "XMP_PROP_")] public enum PropsBits { VALUE_IS_URI, HAS_QUALIFIERS, IS_QUALIFIER, HAS_LANG, HAS_TYPE, VALUE_IS_STRUCT, VALUE_IS_ARRAY, ARRAY_IS_UNORDERED, ARRAY_IS_ORDERED, ARRAY_IS_ALT, ARRAY_IS_ALTTEXT, ARRAY_INSERT_BEFORE, ARRAY_INSERT_AFTER, IS_ALIAS, HAS_ALIASES, IS_INTERNAL, IS_STABLE, IS_DERIVED, ARRAY_FORM_MASK, COMPOSITE_MASK } [Flags] [CCode (cprefix = "XMP_SERIAL_", cname = "uint32_t")] public enum SerializeOptions { OMITPACKETWRAPPER, READONLYPACKET, USECOMPACTFORMAT, INCLUDETHUMBNAILPAD, EXACTPACKETLENGTH, WRITEALIASCOMMENTS, OMITALLFORMATTING, [CCode (cname = "_XMP_LITTLEENDIAN_BIT")] LITTLE_ENDIAN_BIT, [CCode (cname = "_XMP_UTF16_BIT")] UTF16_BIT, [CCode (cname = "_XMP_UTF32_BIT")] UTF32_BIT, ENCODINGMASK, ENCODEUTF8, ENCODEUTF16BIG, ENCODEUTF16LITTLE, ENCODEUTF32BIG, ENCODEUTF32LITTLE } [CCode (has_type_id = false)] public struct MetaInfo { int64 offset; int32 length; [CCode (cname = "padSize")] int32 pad_size; [CCode (cname = "charForm")] uint8 char_form; bool writeable; [CCode (cname = "hasWrapper")] bool has_wrapper; } public bool init (); public void terminate (); public int get_error (); [Compact (opaque = true)] [CCode (cname = "struct _XmpString", lower_case_cprefix = "xmp_string_", free_function = "xmp_string_free")] internal class String { public size_t length { [CCode (cname = "xmp_string_len")]get; } [CCode (cname = "xmp_string_new")] public String (); [CCode (cname = "xmp_string_cstr")] public unowned string to_string (); } [Compact (opaque = true)] [CCode (cname = "struct _Xmp", lower_case_cprefix = "xmp_", free_function = "xmp_free")] public class Meta { [CCode (cname = "xmp_new_empty")] public Meta.empty (); [CCode (cname = "xmp_new")] public Meta (string buffer); public Meta copy (); public bool parse (string buffer); [CCode (cname = "__vala_xmp_serialize")] public bool serialize (out string buffer, SerializeOptions options, uint32 padding) { String xmp_str = new String (); bool retval = serialize_xmp (xmp_str, (uint32) options, padding); buffer = xmp_str.to_string (); return retval; } [CCode (cname = "xmp_serialize")] private bool serialize_xmp (String buffer, uint32 options, uint32 padding); [CCode (cname = "__vala_xmp_serialize_and_format")] public bool serialize_and_format (out string buffer, SerializeOptions options, uint32 padding, string new_line, string tab, int32 indent) { String xmp_str = new String (); bool retval = serialize_and_format_xmp (xmp_str, (uint32) options, padding, new_line, tab, indent); buffer = xmp_str.to_string (); return retval; } [CCode (cname = "__vala_xmp_dump_object")] public bool dump_object (G object, DumpCallback callback) { string contents; bool success = serialize_and_format (out contents, READONLYPACKET, 0, "\n", " ", 0); if (!success) { GLib.critical ("Failed to serialize contents"); return false; } int result = callback (object, contents); return result == 0; } [CCode (cname = "xmp_serialize_and_format")] private bool serialize_and_format_xmp (String buffer, uint32 options, uint32 padding, string new_line, string tab, int32 indent); [CCode (cname = "__vala_xmp_get_property")] public bool get_property (string schema, string name, out string property, out PropsBits props_bits) { bool retval; var xmp_str = new String (); uint32 bits; retval = get_property_xmp_str (schema, name, xmp_str, out bits); props_bits = (PropsBits) bits; property = xmp_str.to_string (); return retval; } [CCode (cname = "xmp_get_property")] private bool get_property_xmp_str (string scheme, string name, String property, out uint32 propsbits); [CCode (cname = "__vala_xmp_get_property_date_time")] public bool get_property_date_time (string schema, string name, out GLib.DateTime property, out PropsBits props_bits) { string property_str; bool property_exists = get_property (schema, name, out property_str, out props_bits); if (property_exists) { property = new GLib.DateTime.from_iso8601 (property_str, null); } else { property = null; } return property_exists; } [CCode (cname = "__vala_xmp_get_property_float")] public bool get_property_float (string schema, string name, out double property, out PropsBits props_bits) { bool retval; uint32 bits = 0x0; retval = get_property_float_xmp_str (schema, name, out property, out bits); props_bits = (PropsBits) bits; return retval; } [CCode (cname = "xmp_get_property_float")] private bool get_property_float_xmp_str (string schema, string name, out double property, out uint32 propsbits); [CCode (cname = "__vala_xmp_get_property_bool")] public bool get_property_bool (string schema, string name, out bool property, out PropsBits props_bits) { bool retval; uint32 bits = 0x0; retval = get_property_bool_xmp (schema, name, out property, out bits); props_bits = (PropsBits) bits; return retval; } [CCode (cname = "xmp_get_property_bool")] private bool get_property_bool_xmp (string schema, string name, out bool property, out uint32 bits); [CCode (cname = "__vala_xmp_get_property_int")] public bool get_property_int (string schema, string name, out int property, out PropsBits props_bits) { bool retval; uint32 bits = 0x0; retval = get_property_int32 (schema, name, out property, out bits); props_bits = (PropsBits) bits; return retval; } [CCode (cname = "xmp_get_property_int32")] private bool get_property_int32 (string schema, string name, out int32 property, out uint32 bits); [CCode (cname = "__vala_xmp_get_array_item")] public bool get_array_item (string schema, string name, int32 index, out string property, out PropsBits props_bits) { bool retval; var xmp_str = new String (); uint32 bits; retval = get_array_item_xmp (schema, name, index, xmp_str, out bits); props_bits = (PropsBits) bits; property = xmp_str.to_string (); return retval; } [CCode (cname = "xmp_get_array_item")] private bool get_array_item_xmp (string schema, string name, int32 index, String property, out uint32 bits); public bool set_property (string schema, string name, string @value, uint32 option_bits); public bool set_property_float (string schema, string name, float @value, uint32 option_bits); public bool set_property_int32 (string schema, string name, int32 @value, uint32 option_bits); public bool set_property_int64 (string schema, string name, int64 @value, uint32 option_bits); public bool set_array_item (string schema, string name, int32 index, string @value, uint32 option_bits); [CCode (cname = "__vala_xmp_set_property_date")] public bool set_property_date (string schema, string name, GLib.DateTime @value, uint32 option_bits) { return set_property (schema, name, @value.format_iso8601 (), option_bits); } [CCode (cname = "__vala_xmp_append_array_item")] public bool append_array_item (string schema, string name, PropsBits array_options, string @value, uint32 option_bits) { return append_array_item_xmp (schema, name, (uint32) array_options, @value, option_bits); } [CCode (cname = "xmp_append_array_item")] private bool append_array_item_xmp (string schema, string name, uint32 array_options, string @value, uint32 option_bits); public bool delete_property (string schema, string name); public bool has_property (string schema, string name); [CCode (cname = "__vala_xmp_get_localized_text")] public bool get_localized_text (string schema, string name, string generic_lang, string specific_lang, out string actual_lang, out string item_value, out PropsBits props_bits) requires (generic_lang != "") requires (specific_lang != "") { uint32 bits = 0x0; String x_actual = new String (), x_value = new String (); bool retval = get_localized_text_xmp (schema, name, generic_lang, specific_lang, x_actual, x_value, out bits); actual_lang = x_actual.to_string (); item_value = x_value.to_string (); props_bits = (PropsBits) bits; return retval; } [CCode (cname = "xmp_get_localized_text")] private bool get_localized_text_xmp (string schema, string name, string generic_lang, string specific_lang, String actual_lang, String item_value, out uint32 bits); public bool set_localized_text (string schema, string name, string generic_lang, string specific_lang, string @value, uint32 option_bits); public bool delete_localized_text (string schema, string name, string generic_lang, string specific_lang); public int count_array_items (string schema, string name) { PropsBits bits; int count = 0; bool property = get_property (schema, name, null, out bits); if (!property) { return -1; } if (!(VALUE_IS_ARRAY in bits)) { return 1; } var iterator = new Iterator (this, schema, name, JUSTCHILDREN); string schema_ns, prop_path, prop_val; while (iterator.next (out schema_ns, out prop_path, out prop_val, out bits)) { if (COMPOSITE_MASK in bits) { iterator.skip (SUBTREE); } if (!(name in prop_path)) { break; } count++; } return count; } } [Compact (opaque = true)] [CCode (cname = "struct _XmpFile", lower_case_cprefix = "xmp_files_", free_function = "xmp_files_free")] public class File { [CCode (cname = "xmp_files_new")] public File (); [CCode (cname = "xmp_files_open_new")] public static File? open_new (string path, OpenFileOptions options); [CCode (cname = "xmp_files_open")] public bool open_file (string path, OpenFileOptions options); public bool close (CloseFileOptions options); public Meta get_new_xmp (); public bool get_xmp (Meta xmp); public bool can_put_xmp (Meta xmp); public bool put_xmp (Meta xmp); [CCode (cname = "xmp_files_can_put_xmp_cstr")] public bool can_put_string (string xmp_packet); [CCode (cname = "__vala_xmp_files_get_info")] public bool get_file_info (ref string? file_path, out OpenFileOptions options, out FileType format, out FileFormatOptions handler_flags) { bool retval = false; if (file_path != null) { var xmp_str = new String (); retval = get_file_info_xmp_str (xmp_str, out options, out format, out handler_flags); file_path = xmp_str.to_string (); } else { retval = get_file_info_xmp_str (null, out options, out format, out handler_flags); } return retval; } [CCode (cname = "xmp_files_get_file_info")] private bool get_file_info_xmp_str (String? file_path, out OpenFileOptions options, out FileType format, out FileFormatOptions handler_flags); } [Compact (opaque = true)] [CCode (cname = "struct _XmpIterator", lower_case_cprefix = "xmp_iterator_", free_function = "xmp_iterator_free")] public class Iterator { [CCode (cname = "xmp_iterator_new")] public Iterator (Meta xmp, string schema, string prop_name, IterOptions options); [CCode (cname = "__vala_xmp_iter_next")] public bool next (out string schema, out string prop_name, out string prop_value, out PropsBits options) { String schema_str = new String (), name_str = new String (), value_str = new String (); uint32 bits = 0x0; bool retval = next_xmp (schema_str, name_str, value_str, out bits); schema = schema_str.to_string (); prop_name = name_str.to_string (); prop_value = value_str.to_string (); options = (PropsBits) bits; return retval; } [CCode (cname = "xmp_iterator_next")] private bool next_xmp (String? schema, String? prop_name, String? prop_value, out uint32 options); public bool skip (IterSkipOptions options); } namespace Namespace { [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_XMP_META")] public const string XMP_META; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_RDF")] public const string RDF; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_EXIF")] public const string EXIF; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_TIFF")] public const string TIFF; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_XAP")] public const string XAP; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_XAP_RIGHTS")] public const string XAP_RIGHTS; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_DC")] public const string DC; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_EXIF_AUX")] public const string EXIF_AUX; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_CRS")] public const string CRS; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_LIGHTROOM")] public const string LIGHTROOM; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_PHOTOSHOP")] public const string PHOTOSHOP; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_CAMERA_RAW_SETTINGS")] public const string CAMERA_RAW_SETTINGS; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_CAMERA_RAW_SAVED_SETTINGS")] public const string CAMERA_RAW_SAVED_SETTINGS; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_IPTC4XMP")] public const string IPTC4XMP; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_TPG")] public const string TPG; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_DIMENSIONS_TYPE")] public const string DIMENSIONS_TYPE; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_CC")] public const string CC; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_PDF")] public const string PDF; [CCode (cheader_filename = "exempi/xmpconsts.h", cname = "NS_XML")] public const string XML; [CCode (cname = "__vala_xmp_register_namespace")] public bool register_namespace (string namespace_uri, string suggested_prefix, out string registered_prefix) { var xmp_str = new String (); bool retval = register_namespace_xmp_str (namespace_uri, suggested_prefix, xmp_str); registered_prefix = xmp_str.to_string (); return retval; } [CCode (cname = "xmp_register_namespace")] private bool register_namespace_xmp_str (string namespace_uri, string suggested_prefix, String registered_prefix); [CCode (cname = "__vala_xmp_namespace_prefix")] public bool namespace_prefix (string ns, out string prefix) { var xmp_str = new String (); bool retval = namespace_is_registered_xmp_str (ns, xmp_str); prefix = xmp_str.to_string (); return retval; } [CCode (cname = "xmp_namespace_prefix")] private bool namespace_is_registered_xmp_str (string ns, String? prefix); [CCode (cname = "__vala_xmp_prefix_is_registered")] public bool prefix_namespace_uri (string uri, out string @namespace) { bool retval; var xmp_str = new String (); retval = prefix_is_registered_xmp_str (uri, xmp_str); @namespace = xmp_str.to_string (); return retval; } [CCode (cname = "xmp_prefix_namespace_uri")] private bool prefix_is_registered_xmp_str (string uri, String? ns); } }