pax_global_header00006660000000000000000000000064150522401170014507gustar00rootroot0000000000000052 comment=12ed227917b8c6386f109b0fa779a58555e9682f SeaDve-Kooha-12ed227/000077500000000000000000000000001505224011700142455ustar00rootroot00000000000000SeaDve-Kooha-12ed227/.github/000077500000000000000000000000001505224011700156055ustar00rootroot00000000000000SeaDve-Kooha-12ed227/.github/FUNDING.yml000066400000000000000000000001561505224011700174240ustar00rootroot00000000000000# These are supported funding model platforms github: SeaDve custom: ["https://www.buymeacoffee.com/seadve"] SeaDve-Kooha-12ed227/.github/ISSUE_TEMPLATE/000077500000000000000000000000001505224011700177705ustar00rootroot00000000000000SeaDve-Kooha-12ed227/.github/ISSUE_TEMPLATE/bug_report.md000066400000000000000000000020541505224011700224630ustar00rootroot00000000000000--- name: Bug report about: Create a bug report to help Kooha improve. title: '' labels: '' assignees: '' --- **Affected version** **Bug summary** **Steps to reproduce** **Expected behavior** **Relevant logs, screenshots, screencasts, etc.** SeaDve-Kooha-12ed227/.github/ISSUE_TEMPLATE/feature_request.md000066400000000000000000000010651505224011700235170ustar00rootroot00000000000000--- name: Feature request about: Suggest a feature to help Kooha improve. title: '' labels: '' assignees: '' --- **Feature summary** **How would you like it to work** **Relevant links, screenshots, screencasts, etc.** SeaDve-Kooha-12ed227/.github/workflows/000077500000000000000000000000001505224011700176425ustar00rootroot00000000000000SeaDve-Kooha-12ed227/.github/workflows/audit.yml000066400000000000000000000004511505224011700214730ustar00rootroot00000000000000on: push: paths: - "**/Cargo.toml" - "**/Cargo.lock" name: Audit jobs: rust-audit: name: Rust Audit runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - uses: rustsec/audit-check@v1.4.1 with: token: ${{ secrets.GITHUB_TOKEN }} SeaDve-Kooha-12ed227/.github/workflows/ci.yml000066400000000000000000000026021505224011700207600ustar00rootroot00000000000000on: push: branches: [main] pull_request: name: CI jobs: checks: name: Checks runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 # FIXME uncomment when we don't --skip ui_files anymore # - name: Download dependencies # run: sudo apt -y install libgtk-4-dev - name: Run checks.py run: curl https://raw.githubusercontent.com/SeaDve/scripts/main/checks.py | python - --verbose --skip rustfmt typos ui_files rustfmt: name: Rustfmt runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - name: Create blank versions of configured file run: echo -e "" >> src/config.rs - name: Run cargo fmt run: cargo fmt --all -- --check typos: name: Typos runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - name: Check for typos uses: crate-ci/typos@master flatpak: name: Flatpak runs-on: ubuntu-22.04 container: image: bilelmoussaoui/flatpak-github-actions:gnome-nightly options: --privileged steps: - uses: actions/checkout@v3 - uses: flatpak/flatpak-github-actions/flatpak-builder@v6 with: bundle: kooha.flatpak manifest-path: build-aux/io.github.seadve.Kooha.Devel.json repository-name: flathub-beta run-tests: true cache-key: flatpak-builder-${{ github.sha }} SeaDve-Kooha-12ed227/.gitignore000066400000000000000000000002251505224011700162340ustar00rootroot00000000000000target/ build/ _build/ builddir/ build-aux/app build-aux/.flatpak-builder/ .flatpak-builder/ src/config.rs *.ui.in~ *.ui~ .flatpak/ vendor/ .vscode/ SeaDve-Kooha-12ed227/COPYING000066400000000000000000001045141505224011700153050ustar00rootroot00000000000000 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 . SeaDve-Kooha-12ed227/Cargo.lock000066400000000000000000001400171505224011700161550ustar00rootroot00000000000000# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 4 [[package]] name = "aho-corasick" version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "android-tzdata" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" [[package]] name = "android_system_properties" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ "libc", ] [[package]] name = "anyhow" version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arrayvec" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-channel" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" dependencies = [ "concurrent-queue", "event-listener-strategy", "futures-core", "pin-project-lite", ] [[package]] name = "atomic_refcell" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c" [[package]] name = "autocfg" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "bitflags" version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" [[package]] name = "block" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "bumpalo" version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "cairo-rs" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1158f326d7b755a9ae2b36c5b5391400e3431f3b77418cedb6d7130126628f10" dependencies = [ "bitflags", "cairo-sys-rs", "glib", "libc", ] [[package]] name = "cairo-sys-rs" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b963177900ec8e783927e5ed99e16c0ec1b723f1f125dff8992db28ef35c62c3" dependencies = [ "glib-sys", "libc", "system-deps", ] [[package]] name = "cc" version = "1.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" dependencies = [ "shlex", ] [[package]] name = "cfg-expr" version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d458d63f0f0f482c8da9b7c8b76c21bd885a02056cc94c6404d861ca2b8206" dependencies = [ "smallvec", "target-lexicon", ] [[package]] name = "cfg-if" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "chrono" version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", "windows-link", ] [[package]] name = "color_quant" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "concurrent-queue" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] [[package]] name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "crossbeam-utils" version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "deluxe" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ed332aaf752b459088acf3dd4eca323e3ef4b83c70a84ca48fb0ec5305f1488" dependencies = [ "deluxe-core", "deluxe-macros", "once_cell", "proc-macro2", "syn 2.0.106", ] [[package]] name = "deluxe-core" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eddada51c8576df9d6a8450c351ff63042b092c9458b8ac7d20f89cbd0ffd313" dependencies = [ "arrayvec", "proc-macro2", "quote", "strsim", "syn 2.0.106", ] [[package]] name = "deluxe-macros" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f87546d9c837f0b7557e47b8bd6eae52c3c223141b76aa233c345c9ab41d9117" dependencies = [ "deluxe-core", "heck 0.4.1", "if_chain", "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 2.0.106", ] [[package]] name = "either" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "event-listener" version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", "pin-project-lite", ] [[package]] name = "event-listener-strategy" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ "event-listener", "pin-project-lite", ] [[package]] name = "field-offset" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ "memoffset", "rustc_version", ] [[package]] name = "futures-channel" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", ] [[package]] name = "futures-core" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", "futures-util", ] [[package]] name = "futures-io" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", ] [[package]] name = "futures-task" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-macro", "futures-task", "pin-project-lite", "pin-utils", "slab", ] [[package]] name = "gdk-pixbuf" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c7330cdbbc653df431331ae3d9d59e985a0fecaf33d74c7c1c5d13ab0245f6c" dependencies = [ "gdk-pixbuf-sys", "gio", "glib", "libc", ] [[package]] name = "gdk-pixbuf-sys" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e25899cc931dc28cba912ebec793b730f53d2d419f90a562fcb29b53bd10aa82" dependencies = [ "gio-sys", "glib-sys", "gobject-sys", "libc", "system-deps", ] [[package]] name = "gdk4" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a67b064d2f35e649232455c7724f56f977555d2608c43300eabc530eaa4e359" dependencies = [ "cairo-rs", "gdk-pixbuf", "gdk4-sys", "gio", "glib", "libc", "pango", ] [[package]] name = "gdk4-sys" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2edbda0d879eb85317bdb49a3da591ed70a804a10776e358ef416be38c6db2c5" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gio-sys", "glib-sys", "gobject-sys", "libc", "pango-sys", "pkg-config", "system-deps", ] [[package]] name = "gdk4-wayland" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f04e030e86c5fc5495eceb83ccbce6c3768078147ece063e5fa34f986fea9b76" dependencies = [ "gdk4", "gdk4-wayland-sys", "gio", "glib", "libc", ] [[package]] name = "gdk4-wayland-sys" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15dca5981448ca1207333aeb9c206583490bbfefc781b97886c7e685ab218368" dependencies = [ "glib-sys", "libc", "system-deps", ] [[package]] name = "gdk4-win32" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8cc947b0056bff5bb2d9c8788c12c176fcd1a76b5bf891592090a85630bd7c96" dependencies = [ "gdk4", "gdk4-win32-sys", "gio", "glib", "libc", ] [[package]] name = "gdk4-win32-sys" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcb474613d6cdca18d1e8571b7dd6d708a6ff33b227bee0e969a8566694fe96" dependencies = [ "gdk4-sys", "glib-sys", "libc", "system-deps", ] [[package]] name = "gdk4-x11" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0634a3d51ccb33e6644d7a4ec29551e1ea2ea6692c420ba6eeae8c42b3363fbc" dependencies = [ "gdk4", "gdk4-x11-sys", "gio", "glib", "libc", ] [[package]] name = "gdk4-x11-sys" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e387238aacc531f93d9031b69c74ce2236b5fd6438e55bc8b7b79a60c883c350" dependencies = [ "gdk4-sys", "glib-sys", "libc", "system-deps", ] [[package]] name = "gettext-rs" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a44e92f7dc08430aca7ed55de161253a22276dfd69c5526e5c5e95d1f7cf338a" dependencies = [ "gettext-sys", "locale_config", ] [[package]] name = "gettext-sys" version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb45773f5b8945f12aecd04558f545964f943dacda1b1155b3d738f5469ef661" dependencies = [ "cc", "temp-dir", ] [[package]] name = "gif" version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b" dependencies = [ "color_quant", "weezl", ] [[package]] name = "gio" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52b5e3f390d01b79e30da451dd00e27cd1ac2de81658e3abf6c1fc3229b24c5f" dependencies = [ "futures-channel", "futures-core", "futures-io", "futures-util", "gio-sys", "glib", "libc", "pin-project-lite", "smallvec", ] [[package]] name = "gio-sys" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a03f2234671e5a588cfe1f59c2b22c103f5772ea351be9cc824a9ce0d06d99fd" dependencies = [ "glib-sys", "gobject-sys", "libc", "system-deps", "windows-sys", ] [[package]] name = "glib" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60bdc26493257b5794ba9301f7cbaf7ab0d69a570bfbefa4d7d360e781cb5205" dependencies = [ "bitflags", "futures-channel", "futures-core", "futures-executor", "futures-task", "futures-util", "gio-sys", "glib-macros", "glib-sys", "gobject-sys", "libc", "memchr", "smallvec", ] [[package]] name = "glib-macros" version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e772291ebea14c28eb11bb75741f62f4a4894f25e60ce80100797b6b010ef0f9" dependencies = [ "heck 0.5.0", "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.106", ] [[package]] name = "glib-sys" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc7c43cff6a7dc43821e45ebf172399437acd6716fa2186b6852d2b397bf622d" dependencies = [ "libc", "system-deps", ] [[package]] name = "gobject-sys" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e9a190eef2bce144a6aa8434e306974c6062c398e0a33a146d60238f9062d5c" dependencies = [ "glib-sys", "libc", "system-deps", ] [[package]] name = "graphene-rs" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d96914394464c04df8279c23976293afd53b2588e03c9d8d9662ef6528654a85" dependencies = [ "glib", "graphene-sys", "libc", ] [[package]] name = "graphene-sys" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf8205bb19b7a041cf059be3c94d6b23b3f2c6c96362c44311dcf184e4a9422a" dependencies = [ "glib-sys", "libc", "pkg-config", "system-deps", ] [[package]] name = "gsettings-macro" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f3b38a7ca9498c2a7ed01ec9cff1f07397d8bc8f4a345b46a58a80170947263" dependencies = [ "deluxe", "heck 0.5.0", "proc-macro-error", "proc-macro2", "quick-xml", "quote", "serde", "syn 2.0.106", ] [[package]] name = "gsk4" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5dbe33ceed6fc20def67c03d36e532f5a4a569ae437ae015a7146094f31e10c" dependencies = [ "cairo-rs", "gdk4", "glib", "graphene-rs", "gsk4-sys", "libc", "pango", ] [[package]] name = "gsk4-sys" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d76011d55dd19fde16ffdedee08877ae6ec942818cfa7bc08a91259bc0b9fc9" dependencies = [ "cairo-sys-rs", "gdk4-sys", "glib-sys", "gobject-sys", "graphene-sys", "libc", "pango-sys", "system-deps", ] [[package]] name = "gst-plugin-gif" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1870271c628a9c5264bf8fd312b1737b1c8931279e3b40b4be9fdb4559eba0c" dependencies = [ "atomic_refcell", "gif", "gst-plugin-version-helper", "gstreamer", "gstreamer-video", ] [[package]] name = "gst-plugin-gtk4" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68d208c00b9e913b7f9f040c6a3b741b8723a102e46c677c87d2cc4f033bb853" dependencies = [ "async-channel", "gdk4-wayland", "gdk4-win32", "gdk4-x11", "gst-plugin-version-helper", "gstreamer", "gstreamer-allocators", "gstreamer-base", "gstreamer-gl", "gstreamer-gl-egl", "gstreamer-gl-wayland", "gstreamer-gl-x11", "gstreamer-video", "gtk4", "windows-sys", ] [[package]] name = "gst-plugin-version-helper" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a68a894ef2d738054b950e1dbef5d9012b63fd968d4d32dbccd31bd8d8d4b219" dependencies = [ "chrono", "toml_edit 0.23.4", ] [[package]] name = "gstreamer" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32f5db514ad5ccf70ad35485058aa8b894bb81cfcf76bb994af135d9789427c6" dependencies = [ "cfg-if", "futures-channel", "futures-core", "futures-util", "glib", "gstreamer-sys", "itertools", "kstring", "libc", "muldiv", "num-integer", "num-rational", "option-operations", "paste", "pin-project-lite", "smallvec", "thiserror", ] [[package]] name = "gstreamer-allocators" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c685206edb606999219eba3dcf6ac9e080113d9697f28e9e29524e4744ef72b" dependencies = [ "glib", "gstreamer", "gstreamer-allocators-sys", "libc", ] [[package]] name = "gstreamer-allocators-sys" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5fe8ea3a27951ac6d12a481d9d4e5248ec9e0a02e0b3e6a620911d5cefb3106" dependencies = [ "glib-sys", "gobject-sys", "gstreamer-sys", "libc", "system-deps", ] [[package]] name = "gstreamer-base" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34745d3726a080e0d57e402a314e37073d0b341f3a5754258550311ca45e4754" dependencies = [ "atomic_refcell", "cfg-if", "glib", "gstreamer", "gstreamer-base-sys", "libc", ] [[package]] name = "gstreamer-base-sys" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfad00fa63ddd8132306feef9d5095a3636192f09d925adfd0a9be0d82b9ea91" dependencies = [ "glib-sys", "gobject-sys", "gstreamer-sys", "libc", "system-deps", ] [[package]] name = "gstreamer-gl" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58630512315f3b973fb9d1bfdcc05dc878812093aa9d38cada0f2c8bdd812b3" dependencies = [ "glib", "gstreamer", "gstreamer-base", "gstreamer-gl-sys", "gstreamer-video", "libc", ] [[package]] name = "gstreamer-gl-egl" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fefa8bb82d924eaaf93812dc448ebd1b99e11c247d6d400af2a3fd2cfa3c9e9a" dependencies = [ "glib", "gstreamer", "gstreamer-gl", "gstreamer-gl-egl-sys", "libc", ] [[package]] name = "gstreamer-gl-egl-sys" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb2c448f0877b90c1384308d243bb946e8395163681ec2990923122eba7a1449" dependencies = [ "glib-sys", "gstreamer-gl-sys", "libc", "system-deps", ] [[package]] name = "gstreamer-gl-sys" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbad7be8c51998c1a4645b0e165b424442649081109aaf30d503d38a57e6f23c" dependencies = [ "glib-sys", "gobject-sys", "gstreamer-base-sys", "gstreamer-sys", "gstreamer-video-sys", "libc", "system-deps", ] [[package]] name = "gstreamer-gl-wayland" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd843ce4bb5c8fb10464c032eb3eb21c21003917f5c39c2803e977d0022a04a2" dependencies = [ "glib", "gstreamer", "gstreamer-gl", "gstreamer-gl-wayland-sys", "libc", ] [[package]] name = "gstreamer-gl-wayland-sys" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cf23299fa9c9974a3acd6c843ae86a5951fb4569642db1d84111995129d208e" dependencies = [ "glib-sys", "gstreamer-gl-sys", "libc", "system-deps", ] [[package]] name = "gstreamer-gl-x11" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abf3c544864fb529246945f8160257751fdd251dad50f2443152cf663757e21f" dependencies = [ "glib", "gstreamer", "gstreamer-gl", "gstreamer-gl-x11-sys", "libc", ] [[package]] name = "gstreamer-gl-x11-sys" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "263dc82655331ce7b21697317c35f090c9396d83edec61f52d888dfce02040de" dependencies = [ "glib-sys", "gstreamer-gl-sys", "libc", "system-deps", ] [[package]] name = "gstreamer-sys" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36f46b35f9dc4b5a0dca3f19d2118bb5355c3112f228a99a84ed555f48ce5cf9" dependencies = [ "cfg-if", "glib-sys", "gobject-sys", "libc", "system-deps", ] [[package]] name = "gstreamer-video" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2a0e4dbc6b5563fa252eaeb4297ca04e7dd2e239c68f67eeeb95148f7d31652" dependencies = [ "cfg-if", "futures-channel", "glib", "gstreamer", "gstreamer-base", "gstreamer-video-sys", "libc", "thiserror", ] [[package]] name = "gstreamer-video-sys" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d944b1492bdd7a72a02ae9a5da6e34a29194b8623d3bd02752590b06fb837a7" dependencies = [ "glib-sys", "gobject-sys", "gstreamer-base-sys", "gstreamer-sys", "libc", "system-deps", ] [[package]] name = "gtk4" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "938d68ad43080ad5ee710c30d467c1bc022ee5947856f593855691d726305b3e" dependencies = [ "cairo-rs", "field-offset", "futures-channel", "gdk-pixbuf", "gdk4", "gio", "glib", "graphene-rs", "gsk4", "gtk4-macros", "gtk4-sys", "libc", "pango", ] [[package]] name = "gtk4-macros" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0912d2068695633002b92c5966edc108b2e4f54b58c509d1eeddd4cbceb7315c" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.106", ] [[package]] name = "gtk4-sys" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a923bdcf00e46723801162de24432cbce38a6810e0178a2d0b6dd4ecc26a1c74" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gdk4-sys", "gio-sys", "glib-sys", "gobject-sys", "graphene-sys", "gsk4-sys", "libc", "pango-sys", "system-deps", ] [[package]] name = "hashbrown" version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" [[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "iana-time-zone" version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "log", "wasm-bindgen", "windows-core", ] [[package]] name = "iana-time-zone-haiku" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ "cc", ] [[package]] name = "if_chain" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" [[package]] name = "indexmap" version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "equivalent", "hashbrown", ] [[package]] name = "itertools" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ "either", ] [[package]] name = "itoa" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "js-sys" version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ "once_cell", "wasm-bindgen", ] [[package]] name = "kooha" version = "2.3.1" dependencies = [ "anyhow", "futures-channel", "futures-util", "gdk4-wayland", "gdk4-x11", "gettext-rs", "gsettings-macro", "gst-plugin-gif", "gst-plugin-gtk4", "gstreamer", "gtk4", "libadwaita", "once_cell", "serde", "serde_yaml", "tracing", "tracing-subscriber", ] [[package]] name = "kstring" version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1" dependencies = [ "static_assertions", ] [[package]] name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libadwaita" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4df6715d1257bd8c093295b77a276ed129d73543b10304fec5829ced5d5b7c41" dependencies = [ "gdk4", "gio", "glib", "gtk4", "libadwaita-sys", "libc", "pango", ] [[package]] name = "libadwaita-sys" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf8950090cc180250cdb1ff859a39748feeda7a53a9f28ead3a17a14cc37ae2" dependencies = [ "gdk4-sys", "gio-sys", "glib-sys", "gobject-sys", "gtk4-sys", "libc", "pango-sys", "system-deps", ] [[package]] name = "libc" version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "locale_config" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934" dependencies = [ "lazy_static", "objc", "objc-foundation", "regex", "winapi", ] [[package]] name = "log" version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "malloc_buf" version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" dependencies = [ "libc", ] [[package]] name = "memchr" version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memoffset" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ "autocfg", ] [[package]] name = "muldiv" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0" [[package]] name = "nu-ansi-term" version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", "winapi", ] [[package]] name = "num-integer" version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ "num-traits", ] [[package]] name = "num-rational" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ "num-integer", "num-traits", ] [[package]] name = "num-traits" version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "objc" version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", ] [[package]] name = "objc-foundation" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" dependencies = [ "block", "objc", "objc_id", ] [[package]] name = "objc_id" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" dependencies = [ "objc", ] [[package]] name = "once_cell" version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "option-operations" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c26d27bb1aeab65138e4bf7666045169d1717febcc9ff870166be8348b223d0" dependencies = [ "paste", ] [[package]] name = "overload" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pango" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab47feb3403aa564edaeb68620c5b9159f8814733a7dd45f0b1a27d19de362fe" dependencies = [ "gio", "glib", "libc", "pango-sys", ] [[package]] name = "pango-sys" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f855bccb447644e149fae79086e1f81514c30fe5e9b8bd257d9d3c941116c86" dependencies = [ "glib-sys", "gobject-sys", "libc", "system-deps", ] [[package]] name = "parking" version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "paste" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pin-project-lite" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "proc-macro-crate" version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", "toml_edit 0.19.15", ] [[package]] name = "proc-macro-crate" version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ "toml_edit 0.22.27", ] [[package]] name = "proc-macro-error" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", "syn 1.0.109", "version_check", ] [[package]] name = "proc-macro-error-attr" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ "proc-macro2", "quote", "version_check", ] [[package]] name = "proc-macro2" version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] [[package]] name = "quick-xml" version = "0.37.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" dependencies = [ "memchr", "serde", ] [[package]] name = "quote" version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] [[package]] name = "regex" version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", "regex-automata", "regex-syntax", ] [[package]] name = "regex-automata" version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", "regex-syntax", ] [[package]] name = "regex-syntax" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "rustc_version" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] [[package]] name = "rustversion" version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "semver" version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" [[package]] name = "serde" version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", ] [[package]] name = "serde_spanned" version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] [[package]] name = "serde_yaml" version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ "indexmap", "itoa", "ryu", "serde", "unsafe-libyaml", ] [[package]] name = "sharded-slab" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] [[package]] name = "shlex" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "slab" version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "strsim" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "unicode-ident", ] [[package]] name = "syn" version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "system-deps" version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4be53aa0cba896d2dc615bd42bbc130acdcffa239e0a2d965ea5b3b2a86ffdb" dependencies = [ "cfg-expr", "heck 0.5.0", "pkg-config", "toml", "version-compare", ] [[package]] name = "target-lexicon" version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" [[package]] name = "temp-dir" version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83176759e9416cf81ee66cb6508dbfe9c96f20b8b56265a39917551c23c70964" [[package]] name = "thiserror" version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", ] [[package]] name = "thread_local" version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", ] [[package]] name = "toml" version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", "toml_datetime 0.6.11", "toml_edit 0.22.27", ] [[package]] name = "toml_datetime" version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] [[package]] name = "toml_datetime" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" dependencies = [ "serde", ] [[package]] name = "toml_edit" version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap", "toml_datetime 0.6.11", "winnow 0.5.40", ] [[package]] name = "toml_edit" version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime 0.6.11", "winnow 0.7.13", ] [[package]] name = "toml_edit" version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7211ff1b8f0d3adae1663b7da9ffe396eabe1ca25f0b0bee42b0da29a9ddce93" dependencies = [ "indexmap", "toml_datetime 0.7.0", "toml_parser", "winnow 0.7.13", ] [[package]] name = "toml_parser" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" dependencies = [ "winnow 0.7.13", ] [[package]] name = "tracing" version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", ] [[package]] name = "tracing-core" version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", ] [[package]] name = "tracing-log" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ "log", "once_cell", "tracing-core", ] [[package]] name = "tracing-subscriber" version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "nu-ansi-term", "sharded-slab", "smallvec", "thread_local", "tracing-core", "tracing-log", ] [[package]] name = "unicode-ident" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unsafe-libyaml" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "valuable" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "version-compare" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" [[package]] name = "version_check" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "wasm-bindgen" version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", "syn 2.0.106", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" dependencies = [ "unicode-ident", ] [[package]] name = "weezl" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" [[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", "windows-link", "windows-result", "windows-strings", ] [[package]] name = "windows-implement" version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", ] [[package]] name = "windows-interface" version = "0.59.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", ] [[package]] name = "windows-link" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-result" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link", ] [[package]] name = "windows-sys" version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ "windows-link", "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_gnullvm", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" [[package]] name = "windows_aarch64_msvc" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" [[package]] name = "windows_i686_gnu" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" [[package]] name = "windows_i686_gnullvm" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" [[package]] name = "windows_i686_msvc" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" [[package]] name = "windows_x86_64_gnu" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" [[package]] name = "windows_x86_64_gnullvm" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" [[package]] name = "windows_x86_64_msvc" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ "memchr", ] [[package]] name = "winnow" version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] SeaDve-Kooha-12ed227/Cargo.toml000066400000000000000000000022331505224011700161750ustar00rootroot00000000000000[package] name = "kooha" version = "2.3.1" authors = ["Dave Patrick Caberto "] license = "GPL-3.0-or-later" edition = "2024" [profile.release] lto = true # Don't compile and link debug info; these reduce build times at the # cost of not having line numbers in backtraces. [profile.dev] debug = 0 strip = "debuginfo" [dependencies] adw = { package = "libadwaita", version = "0.8", features = ["v1_6"] } anyhow = "1.0.59" futures-channel = "0.3.19" futures-util = { version = "0.3", default-features = false } gdk-wayland = { package = "gdk4-wayland", version = "0.10" } gdk-x11 = { package = "gdk4-x11", version = "0.10" } gettext-rs = { version = "0.7.0", features = ["gettext-system"] } gsettings-macro = "0.2" gst = { package = "gstreamer", version = "0.24", features = ["v1_20"] } gst-plugin-gif = "0.14" gst-plugin-gtk4 = { version = "0.14", features = [ "dmabuf", "gtk_v4_14", "wayland", "x11egl", "x11glx", ] } gtk = { package = "gtk4", version = "0.10", features = ["gnome_46"] } once_cell = "1.19.0" serde_yaml = "0.9.31" serde = { version = "1.0.196", features = ["derive"] } tracing = "0.1.36" tracing-subscriber = "0.3.15" SeaDve-Kooha-12ed227/Kooha.doap000066400000000000000000000017521505224011700161600ustar00rootroot00000000000000 Kooha Elegantly record your screen Rust Dave Patrick Caberto SeaDve SeaDve-Kooha-12ed227/README.md000066400000000000000000000144501505224011700155300ustar00rootroot00000000000000

Kooha
Kooha

Elegantly record your screen

Download on Flathub
Buy Me a Coffee


Translation status Flathub downloads CI status

Preview

Capture your screen in an intuitive and straightforward way without distractions. Kooha is a simple screen recorder with a minimal interface. You can simply click the record button without having to configure a bunch of settings. The main features of Kooha include the following: * 🎙️ Record microphone, desktop audio, or both at the same time * 📼 Support for WebM, MP4, GIF, and Matroska formats * 🖥️ Select a monitor or a portion of the screen to record * 🛠️ Configurable saving location, pointer visibility, frame rate, and delay * 🚀 Experimental hardware-accelerated encoding ## 😕 It Doesn't Work There are many possibilities on why it may not be working. You may not have the runtime requirements mentioned below installed, or your distro doesn't support it. For troubleshooting purposes, the [screencast compatibility page](https://github.com/emersion/xdg-desktop-portal-wlr/wiki/Screencast-Compatibility) of `xdg-desktop-portal-wlr` wiki may help determine if your distro has support for it out of the box. If it does, but it still doesn't work, you can also check for the [troubleshooting checklist](https://github.com/emersion/xdg-desktop-portal-wlr/wiki/%22It-doesn't-work%22-Troubleshooting-Checklist). ## ⚙️ Experimental Features These features are disabled by default due to stability issues and possible performance degradation. However, they can be enabled manually by running Kooha with `KOOHA_EXPERIMENTAL` env var set to `all` (e.g., `KOOHA_EXPERIMENTAL=all flatpak run io.github.seadve.Kooha`), or individually, by setting `KOOHA_EXPERIMENTAL` to the following keys (e.g., `KOOHA_EXPERIMENTAL=experimental-formats,window-recording`): | Feature | Description | Issues | | ------------------------ | ----------------------------------------------------------------------- | ------------------------- | | `all` | Enables all experimental features | - | | `experimental-formats` | Enables other codecs (e.g., hardware-accelerate encoders, VP9, and AV1) | Stability | | `multiple-video-sources` | Enables recording multiple monitor or windows | Stability and performance | | `window-recording` | Enables recording a specific window | Flickering | ## 📋 Runtime Requirements * pipewire * gstreamer-plugin-pipewire * xdg-desktop-portal * xdg-desktop-portal-(e.g., gtk, kde, wlr) ## 🏗️ Building from source ### GNOME Builder GNOME Builder is the environment used for developing this application. It can use Flatpak manifests to create a consistent building and running environment cross-distro. Thus, it is highly recommended you use it. 1. Download [GNOME Builder](https://flathub.org/apps/details/org.gnome.Builder). 2. In Builder, click the "Clone Repository" button at the bottom, using `https://github.com/SeaDve/Kooha.git` as the URL. 3. Click the build button at the top once the project is loaded. ### Meson #### Prerequisites The following packages are required to build Kooha: * meson * ninja * appstreamcli (for checks) * cargo * x264 (for MP4) * gstreamer * gstreamer-plugins-base * gstreamer-plugins-ugly (for MP4) * gstreamer-plugins-bad (for VA encoders) * glib2 * gtk4 * libadwaita #### Build Instruction ```shell git clone https://github.com/SeaDve/Kooha.git cd Kooha meson _build --prefix=/usr/local ninja -C _build install ``` ## 📦 Third-Party Packages Unlike Flatpak, take note that these packages are not officially supported by the developer. ### Repology You can also check out other third-party packages on [Repology](https://repology.org/project/kooha/versions). ## 🙌 Help translate Kooha You can help Kooha translate into your native language. If you find any typos or think you can improve a translation, you can use the [Weblate](https://hosted.weblate.org/engage/seadve/) platform. ## ☕ Support me and the project Kooha is free and will always be for everyone to use. If you like the project and would like to support it, you may [buy me a coffee](https://www.buymeacoffee.com/seadve). ## 💝 Acknowledgment I would like to express my gratitude to the [contributors](https://github.com/SeaDve/Kooha/graphs/contributors) and [translators](https://hosted.weblate.org/engage/seadve/) of the project. I would also like to thank the open-source software projects, libraries, and APIs that were used in developing this app, such as GStreamer, GTK, LibAdwaita, and many others, for making Kooha possible. I would also like to acknowledge [RecApp](https://github.com/amikha1lov/RecApp), which greatly inspired the creation of Kooha, as well as [GNOME Screenshot](https://gitlab.gnome.org/GNOME/gnome-screenshot), which served as a reference for Kooha's icon design. SeaDve-Kooha-12ed227/build-aux/000077500000000000000000000000001505224011700161375ustar00rootroot00000000000000SeaDve-Kooha-12ed227/build-aux/dist-vendor.sh000077500000000000000000000021141505224011700207320ustar00rootroot00000000000000#!/bin/sh # Since Meson invokes this script as # "/bin/sh .../dist-vendor.sh DIST SOURCE_ROOT" we can't rely on bash features set -eu export DIST="$1" export SOURCE_ROOT="$2" cd "$SOURCE_ROOT" mkdir "$DIST"/.cargo # cargo-vendor-filterer can be found at https://github.com/coreos/cargo-vendor-filterer # It is also part of the Rust SDK extension. cargo vendor-filterer --all-features --platform=x86_64-unknown-linux-gnu --platform=aarch64-unknown-linux-gnu > "$DIST"/.cargo/config.toml set -- vendor/gettext-sys/gettext-*.tar.* TARBALL_PATH=$1 TARBALL_NAME=$(basename "$TARBALL_PATH") rm -f "$TARBALL_PATH" # remove the tarball from checksums cargo_checksum='vendor/gettext-sys/.cargo-checksum.json' tmp_f=$(mktemp --tmpdir='vendor/gettext-sys' -t) jq -c "del(.files[\"$TARBALL_NAME\"])" "$cargo_checksum" > "$tmp_f" mv -f "$tmp_f" "$cargo_checksum" # Don't combine the previous and this line with a pipe because we can't catch # errors with "set -o pipefail" sed -i 's/^directory = ".*"/directory = "vendor"/g' "$DIST/.cargo/config.toml" # Move vendor into dist tarball directory mv vendor "$DIST" SeaDve-Kooha-12ed227/build-aux/io.github.seadve.Kooha.Devel.json000066400000000000000000000050111505224011700242630ustar00rootroot00000000000000{ "id": "io.github.seadve.Kooha.Devel", "runtime": "org.gnome.Platform", "runtime-version": "master", "sdk": "org.gnome.Sdk", "sdk-extensions": [ "org.freedesktop.Sdk.Extension.rust-stable", "org.freedesktop.Sdk.Extension.llvm20" ], "command": "kooha", "finish-args": [ "--device=dri", "--filesystem=xdg-videos", "--share=ipc", "--socket=fallback-x11", "--socket=pulseaudio", "--socket=wayland", "--env=RUST_BACKTRACE=1", "--env=RUST_LIB_BACKTRACE=0", "--env=RUST_LOG=kooha=debug", "--env=G_MESSAGES_DEBUG=none", "--env=KOOHA_EXPERIMENTAL=all" ], "build-options": { "append-path": "/usr/lib/sdk/llvm20/bin:/usr/lib/sdk/rust-stable/bin", "build-args": [ "--share=network" ], "env": { "CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER": "clang", "CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS": "-C link-arg=-fuse-ld=/usr/lib/sdk/rust-stable/bin/mold" } }, "modules": [ { "name": "x264", "config-opts": [ "--enable-shared", "--enable-pic", "--disable-cli" ], "sources": [ { "type": "git", "url": "https://code.videolan.org/videolan/x264.git", "branch": "stable", "commit": "31e19f92f00c7003fa115047ce50978bc98c3a0d" } ] }, { "name": "gst-plugins-ugly", "buildsystem": "meson", "builddir": true, "config-opts": [ "-Ddoc=disabled", "-Dnls=disabled", "-Dtests=disabled", "-Dgpl=enabled" ], "sources": [ { "type": "archive", "url": "https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.26.5.tar.xz", "sha256": "3dfc43435be97e110816bac6d602b0f206a038546279683d9d25372ff127db52" } ] }, { "name": "kooha", "buildsystem": "meson", "run-tests": true, "config-opts": [ "-Dprofile=development" ], "sources": [ { "type": "dir", "path": "../" } ] } ] } SeaDve-Kooha-12ed227/data/000077500000000000000000000000001505224011700151565ustar00rootroot00000000000000SeaDve-Kooha-12ed227/data/icons/000077500000000000000000000000001505224011700162715ustar00rootroot00000000000000SeaDve-Kooha-12ed227/data/icons/io.github.seadve.Kooha-symbolic.svg000066400000000000000000000044171505224011700250350ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/icons/io.github.seadve.Kooha.Devel.svg000066400000000000000000000166051505224011700242560ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/icons/io.github.seadve.Kooha.Source.svg000066400000000000000000005462311505224011700244620ustar00rootroot00000000000000 Adwaita Icon Template image/svg+xml GNOME Design Team Adwaita Icon Template Hicolor Symbolic battery is full and there is no a/c connected. SeaDve-Kooha-12ed227/data/icons/io.github.seadve.Kooha.svg000066400000000000000000000070111505224011700232070ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/icons/meson.build000066400000000000000000000004241505224011700204330ustar00rootroot00000000000000install_data( '@0@.svg'.format(application_id), install_dir: iconsdir / 'hicolor' / 'scalable' / 'apps' ) install_data( '@0@-symbolic.svg'.format(base_id), install_dir: iconsdir / 'hicolor' / 'symbolic' / 'apps', rename: '@0@-symbolic.svg'.format(application_id) ) SeaDve-Kooha-12ed227/data/io.github.seadve.Kooha.desktop.in.in000066400000000000000000000006461505224011700237670ustar00rootroot00000000000000[Desktop Entry] Name=Kooha Exec=kooha Comment=Elegantly record your screen Type=Application Terminal=false Categories=GTK;GNOME;Utility;Recorder; # Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. Keywords=Screencast;Recorder;Screen;Video; Icon=@icon@ StartupNotify=true DBusActivatable=true X-GNOME-UsesNotifications=true SeaDve-Kooha-12ed227/data/io.github.seadve.Kooha.gschema.xml.in000066400000000000000000000023511505224011700241120ustar00rootroot00000000000000 "monitor-window" true false true 0 b"" "webm-vp8" (30, 1) "" (-1, -1, -1, -1) ((-1, -1, -1, -1), (-1, -1)) SeaDve-Kooha-12ed227/data/io.github.seadve.Kooha.metainfo.xml.in.in000066400000000000000000000412411505224011700247130ustar00rootroot00000000000000 @app-id@ CC0-1.0 GPL-3.0-or-later Kooha Elegantly record your screen

Capture your screen in a intuitive and straightforward way without distractions.

Kooha is a simple screen recorder with a minimalist interface. You can just click the record button without having to configure a bunch of settings.

The main features of Kooha include the following:

  • 🎙️ Record microphone, desktop audio, or both at the same time
  • 📼 Support for WebM, MP4, GIF, and Matroska formats
  • 🖥️ Select a monitor or a portion of the screen to record
  • 🛠️ Configurable saving location, pointer visibility, frame rate, and delay
  • 🚀 Experimental hardware accelerated encoding
https://raw.githubusercontent.com/SeaDve/Kooha/main/data/screenshots/screenshot.png Recording options and button to start recording https://raw.githubusercontent.com/SeaDve/Kooha/main/data/screenshots/screenshot2.png In-progress recording duration and button to stop recording https://raw.githubusercontent.com/SeaDve/Kooha/main/data/screenshots/screenshot3.png Countdown to start recording and button to cancel recording https://github.com/SeaDve/Kooha/issues https://github.com/SeaDve/Kooha https://seadve.github.io/donate/ https://hosted.weblate.org/projects/seadve/kooha/ https://github.com/SeaDve/Kooha

This release contains minor changes:

  • Updated UI
  • Updated translations

This release contains new features and fixes:

  • Area selector window is now resizable
  • Previous selected area is now remembered
  • Logout and idle are now inhibited while recording
  • Video format and FPS are now shown in the main view
  • Notifications now show the duration and size of the recording
  • Notification actions now work even when the application is closed
  • Progress is now shown when flushing the recording
  • It is now much easier to pick from frame rate options
  • Actually fixed audio from stuttering and being cut on long recordings
  • Record audio in stereo rather than mono when possible
  • Recordings are no longer deleted when flushing is cancelled
  • Significant improvements in recording performance
  • Improved preferences dialog UI
  • Fixed incorrect output video orientation on certain compositors
  • Fixed incorrect focus on area selector
  • Fixed too small area selector window default size on HiDPI monitors
  • Updated translations

This release contains minor fixes:

  • Added window close shortcut
  • Improve file saving handling (thanks to @DaPigGuy)
  • Updated translations

This release contains minor fixes:

  • Fixed indefinite flushing time on certain distros
  • Slightly improved performance on certain configurations
  • Updated translations

This release contains minor fixes:

  • Fixed error dialog showing when show uri is simply cancelled
  • Fixed more audio issues
  • Updated translations

This release contains minor fixes:

  • Only show None profile when it is active
  • Guard window selection behind `KOOHA_EXPERIMENTAL` env var
  • Updated translations

This release contains new features and fixes:

  • New area selection UI
  • Added option to change the frame rate through the UI
  • Improved delay settings flexibility
  • Added preferences window for easier configuration
  • Added `KOOHA_EXPERIMENTAL` env var to show experimental (unsupported) encoders like VAAPI-VP8 and VAAPI-H264
  • Added the following experimental (unsupported) encoders: VP9, AV1, and VAAPI-VP9
  • Unavailable formats/encoders are now hidden from the UI
  • Fixed broken audio on long recordings
  • Updated translations

This release contains fixes:

  • Improved tooltip text on settings toggle buttons
  • Fallback to manual mode when failed to get default device name through GStreamer device monitor

This release contains new features and fixes:

  • Remember previously selected video sources
  • Added ability to cancel while flushing the recording
  • Use different icons for settings toggle button to discern state more clearly
  • Added 3 seconds delay option
  • Fixed x264 encoder failing to initialize on uneven resolutions
  • Fixed minutes stuck on 00 if time is equal or greater than an hour
  • Recordings are now stored by default in `~/Videos/Kooha` (This won't affect existing settings)
  • "Show in Files" button in notifications now highlights the file in the file manager
  • Improved support information in the new about window
  • Improved error handling
  • Improved codebase and stability
  • Updated translations

This is a minor release:

  • GIF recordings now loops infinitely
  • Minor codebase improvements
  • Added Serbian Cyrillic translations
  • Added Serbian Latin translations
  • Updated Croatian translations
  • Updated Ukrainian translations
  • Updated Basque translations
  • Updated Dutch translations
  • Updated Turkish translations
  • Updated Italian translations
  • Updated Spanish translations
  • Updated Hungarian translations
  • Updated German translations
  • Updated Slovak translations

This is a big release containing a lot of fixes and new features!

  • Added MP4 and GIF formats
  • Added feature to record a single window or monitor
  • Added optional-in hardware accelerated encoding
  • Added multiple video sources recording
  • Added much improved error handling
  • Fixed broken UI on non-default close button placement
  • Fixed major bug in GNOME 41
  • Fixed off selection region on integer scaling
  • Fixed saving the recording to a hidden directory
  • Improved performance
  • Now working for certain desktop environments and window managers
  • Full rewrite to Rust
  • Updated translations

This release contains small fixes and improvements:

  • Focus start record button on startup
  • Improved UI and UX
  • Fixed bug when tmp folder doesn't exist
  • Updated Swedish translations
  • Updated Spanish translations
  • Updated Turkish translations
  • Updated Italian translations
  • Updated Dutch translations
  • Updated French translations
  • Updated Portuguese (Brazil) translations
  • Updated Norwegian Bokmål translations

This release brings the new GTK4 and an important fix for GNOME 40.

  • Recording performance improvements
  • Major UI improvements
  • Dynamically change the multiplexer
  • Fix GNOME 40 crashes
  • Fix crashes in non-supported environment
  • Updated Spanish translations
  • Updated Portuguese translations
  • Updated Turkish translations
  • Updated Norwegian Bokmål translations
  • Updated Italian translations
  • Updated Indonesian translations

New fixes and translations update coming this release:

  • More responsive shortcuts
  • Fix crashing when no desktop environment is set up
  • Updated Slovak Translations
  • Updated Portuguese (Brazil) translations
  • Updated Russian translations
  • Updated Indonesian translations

This is a minor release composing of fixes and improvements:

  • Minor performance optimizations
  • Updated Dutch translations
  • Updated Turkish translations
  • Updated Spanish translations
  • Updated Indonesian translations
  • Updated Filipino translations
  • Updated Italian translations
  • Updated French translations
  • Updated German translations
  • Updated Norwegian Bokmål translations
  • Updated Chinese(simplified) translations

This release is composing of minor changes:

  • Minor UI improvements
  • Code cleaning and minor performance improvements
  • Fixed a bug when trying to save in an inaccessible location
  • Added Persian translations
  • Added Chinese(simplified) translations
  • Updated translations

This update brings new features and few bug fixes:

  • Added a processing view to avoid recording corruption
  • Added a notification after recording to show saving location
  • Added option to change framerate through Kooha's keyfile
  • Minor improvements

This is a small update composing of bug fixes:

  • Fix audio recording in other locales
  • Fix when using keyboard shortcuts unexpectedly
  • Minor improvements
  • Update translations

This release brings a couple of improvements:

  • New! Ability to select audio devices through GNOME Settings
  • Removed the annoying tong sound
  • Fixed when the selection is not divisible by 2
  • Minor UI tweaks and other bug fixes
  • Performance improvements
  • Added new translations
  • Updated translations

A couple of bug fixes here and improvements there:

  • Minor performance improvements
  • Bug fixes
  • Added Swedish translations
  • Added Indonesian translations
  • Update Filipino translations

This release brings a couple of small changes:

  • set WebM as default format
  • Minor fixes
  • Add Filipino translations

Version 1.0.1 brings fixes to a couple of bugs:

  • Catch the error when the path of the directory no longer exists
  • Fix the bug when the path contains spaces
  • Fix missing argument argv
  • Possible fix for GioDBus: The name is not activatable
  • Make desktop environment check less strict

This is the 1.0 release of Kooha. The features of this release include the following:

  • Record your screen and also audio from your microphone or desktop
  • Option to show or hide the pointer
  • Option to record only an area on your screen
  • Select the saving location of the record
  • Ability to add a delay before recording starts
  • Video format settings (MKV and WebM)
  • And of course, keyboard shortcuts!

Initial release.

Dave Patrick Caberto Dave Patrick Caberto davecruz48@gmail.com @gettext-package@ @app-id@.desktop keyboard pointing touch
SeaDve-Kooha-12ed227/data/io.github.seadve.Kooha.service.in000066400000000000000000000001111505224011700233340ustar00rootroot00000000000000[D-BUS Service] Name=@app-id@ Exec=@bindir@/kooha --gapplication-service SeaDve-Kooha-12ed227/data/meson.build000066400000000000000000000042221505224011700173200ustar00rootroot00000000000000subdir('icons') subdir('resources') # Desktop file desktop_conf = configuration_data() desktop_conf.set('icon', application_id) desktop_file = i18n.merge_file( type: 'desktop', input: configure_file( input: '@0@.desktop.in.in'.format(base_id), output: '@BASENAME@', configuration: desktop_conf ), output: '@0@.desktop'.format(application_id), po_dir: podir, install: true, install_dir: datadir / 'applications' ) # Validate Desktop file if desktop_file_validate.found() test( 'validate-desktop', desktop_file_validate, args: [ desktop_file.full_path() ], depends: desktop_file, ) endif # Appdata appdata_conf = configuration_data() appdata_conf.set('app-id', application_id) appdata_conf.set('gettext-package', gettext_package) appdata_file = i18n.merge_file( input: configure_file( input: '@0@.metainfo.xml.in.in'.format(base_id), output: '@BASENAME@', configuration: appdata_conf ), output: '@0@.metainfo.xml'.format(application_id), po_dir: podir, install: true, install_dir: datadir / 'metainfo' ) # Validate Appdata if appstreamcli.found() test( 'validate-appdata', appstreamcli, args: [ 'validate', '--no-net', '--explain', appdata_file.full_path() ], depends: appdata_file, ) endif # GSchema gschema_conf = configuration_data() gschema_conf.set('app-id', application_id) gschema_conf.set('gettext-package', gettext_package) configure_file( input: '@0@.gschema.xml.in'.format(base_id), output: '@0@.gschema.xml'.format(application_id), configuration: gschema_conf, install: true, install_dir: datadir / 'glib-2.0' / 'schemas' ) # Validate GSchema if glib_compile_schemas.found() test( 'validate-gschema', glib_compile_schemas, args: [ '--strict', '--dry-run', meson.current_build_dir() ], ) endif # D-Bus service file service_conf = configuration_data() service_conf.set('app-id', application_id) service_conf.set('bindir', bindir) configure_file( input: '@0@.service.in'.format(base_id), output: '@0@.service'.format(application_id), configuration: service_conf, install: true, install_dir: datadir / 'dbus-1' / 'services' ) SeaDve-Kooha-12ed227/data/resources/000077500000000000000000000000001505224011700171705ustar00rootroot00000000000000SeaDve-Kooha-12ed227/data/resources/icons/000077500000000000000000000000001505224011700203035ustar00rootroot00000000000000SeaDve-Kooha-12ed227/data/resources/icons/scalable/000077500000000000000000000000001505224011700220515ustar00rootroot00000000000000SeaDve-Kooha-12ed227/data/resources/icons/scalable/actions/000077500000000000000000000000001505224011700235115ustar00rootroot00000000000000SeaDve-Kooha-12ed227/data/resources/icons/scalable/actions/audio-volume-high-symbolic.svg000066400000000000000000000026501505224011700313770ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/icons/scalable/actions/audio-volume-muted-symbolic.svg000066400000000000000000000021251505224011700315730ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/icons/scalable/actions/checkmark-symbolic.svg000066400000000000000000000004341505224011700300020ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/icons/scalable/actions/microphone-disabled-symbolic.svg000066400000000000000000000016511505224011700317640ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/icons/scalable/actions/microphone2-symbolic.svg000066400000000000000000000010741505224011700303000ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/icons/scalable/actions/mouse-wireless-disabled-symbolic.svg000066400000000000000000000016261505224011700326060ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/icons/scalable/actions/mouse-wireless-symbolic.svg000066400000000000000000000011101505224011700310250ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/icons/scalable/actions/refresh-symbolic.svg000066400000000000000000000015771505224011700275210ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/icons/scalable/actions/selection-symbolic.svg000066400000000000000000000016211505224011700300360ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/icons/scalable/actions/source-pick-symbolic.svg000066400000000000000000000022211505224011700302720ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/icons/scalable/actions/warning-symbolic.svg000066400000000000000000000014701505224011700275200ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/meson.build000066400000000000000000000003161505224011700213320ustar00rootroot00000000000000# Resources resources = gnome.compile_resources( 'resources', 'resources.gresource.xml', gresource_bundle: true, source_dir: meson.current_build_dir(), install: true, install_dir: pkgdatadir, ) SeaDve-Kooha-12ed227/data/resources/profiles.yml000066400000000000000000000055321505224011700215430ustar00rootroot00000000000000# Note: # - videoenc and audioenc will be connected directly to the muxer # - audioenc and muxer are optional, but if audioenc is set, muxer must also be set # - ${N_THREADS} will be replaced with ideal thread count # - default suggested-max-fps is 60 supported: - id: webm-vp8 name: WebM extension: webm videoenc: > videoconvert chroma-mode=none dither=none matrix-mode=output-only n-threads=${N_THREADS} ! vp8enc max-quantizer=17 cpu-used=16 deadline=1 static-threshold=100 keyframe-mode=disabled buffer-size=20000 threads=${N_THREADS} ! queue audioenc: > audioconvert ! opusenc ! queue muxer: webmmux - id: mp4 name: MP4 extension: mp4 videoenc: > videoconvert chroma-mode=none dither=none matrix-mode=output-only n-threads=${N_THREADS} ! x264enc qp-max=17 speed-preset=ultrafast threads=${N_THREADS} ! capsfilter caps=video/x-h264,profile=baseline ! queue ! h264parse audioenc: > audioconvert ! lamemp3enc ! queue ! mpegaudioparse muxer: mp4mux fragment-duration=500 fragment-mode=first-moov-then-finalise - id: matroska-h264 name: Matroska extension: mkv videoenc: > videoconvert chroma-mode=none dither=none matrix-mode=output-only n-threads=${N_THREADS} ! x264enc qp-max=17 speed-preset=ultrafast threads=${N_THREADS} ! capsfilter caps=video/x-h264,profile=baseline ! queue ! h264parse audioenc: > audioconvert ! opusenc ! queue muxer: matroskamux - id: gif name: GIF extension: gif suggested-max-fps: 24 videoenc: > videoconvert chroma-mode=none dither=none matrix-mode=output-only n-threads=${N_THREADS} ! gifenc repeat=-1 speed=30 ! queue experimental: - id: webm-vp9 name: WebM (VP9) extension: webm videoenc: > videoconvert chroma-mode=none dither=none matrix-mode=output-only n-threads=${N_THREADS} ! vp9enc max-quantizer=17 cpu-used=16 deadline=1 static-threshold=100 keyframe-mode=disabled buffer-size=20000 threads=${N_THREADS} ! queue audioenc: > audioconvert ! opusenc ! queue muxer: webmmux - id: webm-av1 name: WebM (AV1) extension: webm videoenc: > videoconvert chroma-mode=none dither=none matrix-mode=output-only n-threads=${N_THREADS} ! av1enc usage-profile=realtime max-quantizer=17 cpu-used=5 end-usage=cq buf-sz=20000 threads=${N_THREADS} ! queue audioenc: > audioconvert ! opusenc ! queue muxer: webmmux - id: va-h264 name: WebM VA H264 extension: mp4 videoenc: > vapostproc ! vah264enc ! queue ! h264parse audioenc: > audioconvert ! lamemp3enc ! queue ! mpegaudioparse muxer: mp4mux fragment-duration=500 fragment-mode=first-moov-then-finalise SeaDve-Kooha-12ed227/data/resources/resources.gresource.xml000066400000000000000000000037131505224011700237250ustar00rootroot00000000000000 icons/scalable/actions/audio-volume-high-symbolic.svg icons/scalable/actions/audio-volume-muted-symbolic.svg icons/scalable/actions/checkmark-symbolic.svg icons/scalable/actions/microphone-disabled-symbolic.svg icons/scalable/actions/microphone2-symbolic.svg icons/scalable/actions/mouse-wireless-disabled-symbolic.svg icons/scalable/actions/mouse-wireless-symbolic.svg icons/scalable/actions/refresh-symbolic.svg icons/scalable/actions/selection-symbolic.svg icons/scalable/actions/source-pick-symbolic.svg icons/scalable/actions/warning-symbolic.svg profiles.yml style.css ui/area_selector.ui ui/item_row.ui ui/preferences_dialog.ui ui/shortcuts.ui ui/view_port.ui ui/window.ui SeaDve-Kooha-12ed227/data/resources/style.css000066400000000000000000000010561505224011700210440ustar00rootroot00000000000000row.error-view { padding: 0px; } label.large-time { font-size: 450%; font-weight: 300; font-feature-settings: "tnum"; } label.recording { color: var(--destructive-bg-color); } label.paused { animation-name: blinking; animation-iteration-count: infinite; animation-timing-function: cubic-bezier(1.0, 0, 0, 1.0); animation-duration: 1s; } button.copy-done { color: var(--accent-bg-color); } window.area-selector .view-port { padding: 12px; padding-top: 6px; } @keyframes blinking { 0% { color: var(--window-fg-color); } } SeaDve-Kooha-12ed227/data/resources/ui/000077500000000000000000000000001505224011700176055ustar00rootroot00000000000000SeaDve-Kooha-12ed227/data/resources/ui/area_selector.ui000066400000000000000000000065151505224011700227630ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/ui/item_row.ui000066400000000000000000000023631505224011700217750ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/ui/preferences_dialog.ui000066400000000000000000000054521505224011700237720ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/ui/shortcuts.ui000066400000000000000000000102431505224011700222020ustar00rootroot00000000000000 True shortcuts General Open Menu F10 Show Preferences app.show-preferences Show Shortcuts win.show-help-overlay Close Window window.close Quit app.quit Recording Toggle Record win.toggle-record False Toggle Pause win.toggle-pause Cancel Record win.cancel-record Settings Toggle Desktop Audio win.record-desktop-audio Toggle Microphone win.record-microphone Toggle Pointer win.show-pointer SeaDve-Kooha-12ed227/data/resources/ui/view_port.ui000066400000000000000000000012451505224011700221640ustar00rootroot00000000000000 SeaDve-Kooha-12ed227/data/resources/ui/window.ui000066400000000000000000000362071505224011700214630ustar00rootroot00000000000000
_Preferences app.show-preferences _Keyboard Shortcuts win.show-help-overlay _About Kooha app.show-about
SeaDve-Kooha-12ed227/data/screenshots/000077500000000000000000000000001505224011700175165ustar00rootroot00000000000000SeaDve-Kooha-12ed227/data/screenshots/preview.png000066400000000000000000002171761505224011700217230ustar00rootroot00000000000000PNG  IHDR%0hA pHYsodtEXtSoftwarewww.inkscape.org< IDATxwx՝{F5Y-r6RXBP5o7 K IHYBKv7Zhl.l ئ˖mٖ^G33}Fuͥy̜C[wy CfLt@@QE %@\PqAQE %@\݀`0@`Ñ6 } kH~3; z !@A/=($I@B=_(! Hz EH@QpA!$FH=@Ρ(! > ɍ<5@#b<ˋ)6RLFI.H;I% $<+q Hm1@ yy zUQ"FapK/1$y!@ "D@(JD1l0DbڛH"1DH@ E(h $h_#z><,K~(HK$ʰ^#y!@eQ"̰k.1x]Bە$kЍ<y ]Q"Up/.O@i<y Ҫ(bh_.X^By` -|yz5$#$)J80ĈŴ@>b<Y "XZ% XhXoJi>b<, @%8bq,!?X ~ )<"@ tQ"NhuC=Ѻ Y><Y "Q%"(H_^8hjf0IM@i<y \Q"阑XQ.@/AAHb)U}>A`qqwƈ΃t1@RY {Ya HEwL<2E0GFo  i>"AY Ő1@(J^#ݎt_8b' `$ Pu; ",(#$@%ў9e}& )<2@$mQ"J1 Q8vFeF1L |!  F E~W/'x#d1DH@ $pF!Dt ;.~9Nw}B$ ) E!t ID10=C1@<slL ~@y'IDF?D+`;j"k} H`‡ pFڎDY qFH%0!}C=[| X.zh\"Pp">_m~0 +@z#@lY@"9,ވ<m>%2$( }F/ǝσyPBGaޅ{1:#PP^G3yBGnQH<<S @r!lOq)J6<;!W'D?="^槯vs&ԟy>@vBȑ%3""y<.y ֟阑 ן:<{H\y;n]\9!Pp}y$P f`y@=dcIy PA_BA;B!v?A|$Bgvht'BDW#"|]}b>\{g0׶( zIBy_Q"؂yy S̊1X׾`Go#&}}?]o}zB|` 3빷mQ d/n$+Xx"@&bRa6`xgPg\KGH{!t@tE<o޾?޶be3A_ǃ(rzk< :BX`ӹ`u"]g  !{v?fPH<`z&/]B# tZnzu^RRkʼn@}HN m`hY8sIR;\VϛZznGqPF>m:ǜ]?.1t]CA=?:o޶!sPe<!C <[߀gۼ}h @!7CTgJ/pn8<{ [0J{ҥKsL7nܸQfh4 4}$eybkvGvl޽{}o6}MRGw İy·#Fȸ[WX1dLVV\b2 $vOá~f8P^UUoڵߞ(//ohvAY@J<q mܔ)Solf4ƾH^߿?u5 DeF8ÛUv3|*pBON:xHf0.^8__&̞=gQ^^|8,@dۏ44o6'?ٽiӦF+N쉴R%0y睅wuל-]f_UUGkWQ" &I7|s̙̼w (.]΍ HxRQ"!x7qQIɐL&8?:::8qG} :gM'* H ^xᅩ-2''{:gA7>_r%;uJ뾁@RBp}LF? |s̽YXlm'>D\GH &uv>X$AwqA]@#'^~ZWq<-<̈}/ԥK/bV l6۶m˗UH˾`D\L_ {p}\ Ң{AW^=7D|REYlz awHH<,`O:替|S߾}Wt kkkO{:GG@Y@JhT7m۶%SN[m2t.SkɌ3^mjj+MQQ"QL7A*aضUN;??CbYaCÇgȈ`>8<-*H<\v٥_X,h;1޾^}@ mr{-tY@{Uo KyXQq+` vb#F U]]M)7XH\ B\ ْ,K,mjj @SSSϖ,YlwM!z)/=9Jdp=n5|pM.+ 222οݼyÇ[YnQpS) `2͛sl+**2 @"}+WpvQ"Qn{y맷_>y &ْ2nkּ+ټ(v3fyњ5o\Ç,kܧg%(/c8|%׆O=/' df2FΛ7> u.`{]J,3ׇW.7)tHWsrr. @3 w~~;yð)_o@ϑ;w\ѧO>}ܰsry<&|/+x`E-*33h~ bbL_xU?G0lpY X$}EE_TЧO~&i@޾H0 az'NvM &NիWԹy&\/R™Ye…y]vҾ}^A>Z 3 *Y Ϗoo/:u]F1?W&L{X7pC])7&\}ݸuۤsSZ͒r$꾗e<@2hii~9???չVd:דv#y@7M A<#I^|9˖-d2OFVGm+U%Zu.DfZP@8}ْUUUwmRFKK+C ]7y "Co87Y۾L?yyyDA3222LL%By3y43͛Sȭ t]˺m?5Up"u袋'_0#/pun_2gH? YW߀YqѢךf#HYfR^^Y7&EPMP$ڵk/4ͳBl Il6Zvs3|^ O\s=?yW0K2[|yga!a4M4iFl ozPO<@4zoE ׾s=wjeHIfy3S:OٳgU[[Fn'^Y-\5۶7ǑLGuC/Ӱa2 qk@:1 0|ذa:wo@DeP^Jo`Μ99| il6Ϝ?~Ro x͔ŗp aw3!N݌ /ݡf̙3Wss!!p8ѡ6577^gΜQMMe;ut]lKѹ~?%ڂ HZEEEE\s[3ZhU0I2^zdRw=>##sDC Y$iĉcc: ,RUU$iZrfώlOyaھ}Ԭ:tVX%Kbx}嗪{GְaoԩSZ"$Iӆ ҥim_Ү]e4qD}hڴn}9}gjjj֠Ax"}K7*// /@媯b5uyU8dodܬugfkWcc,YV_|#ztxoy +xs1N8_nnna N< b\?3j߀QaҤI#F#E @;v~{{{2 `0 ]84PoSSH_CO_򤲲B_C_XE1UT֭cرwͺ;tPyPmhhhП߱cn7ii/O?vΑ#G?IֽG}XxW^YZZZl6L?w]qeQFMMMjjjVBGvUQ~и\<v E "X_SQ }333 Bj%)lǵOxgC=np 3 Gv=M?py94N"6axOǞ뽾y-Hx:vnV޽'߂.HH;Ïx=fԫ֣ ᪲RwV o^z=on7RfSMM TSS+Ƕ I<7^  ^L&c߼<) O"̴Vl`PCfSo j0yAh44RFccnnSOkŊeAdpz΅ IDATif}ÇוW^>}sZUuttH|d{KN=O'Na}v: P/|0@[ku/++}PfY_&LÇ멧Vcccy~]ְamii/~g7V7% >LUUzgu /\Ukkb;]55Uffu x\G:dꦟ<; %h42h52r<,Bo.Rm0}-_~IPb# "IZb,Kn{tWtoO6Mwu9p)J۾Ç#jmmӯFϟ+.SssseΏt%vfBV|9T__/.ONkk~dʔÚaȈY!Fc^ @$Y@DŋX.kJps;!o6zϞߞȎ;U]]﮻1{%>}۾__'.(肄$M>  V\oƌ zٳkZsz~~F ]#s`qEs$C>y$k'd450g}5[B!3 ٥r߀dW|ZC HZ /&=cZ=(syMzysc29y1)(c_n{!++G@ӵOilluUW'U[[vϙ爇֤(H8566h4s)'<.! # ]{"  Q $(lPp @s87ޠuC&=ȣw-]tIB> [afs+\%L&͉JF41"0:5>Z=L@/N5eҞlַnkּ egg|ka#T6ׂjՌ_ h⥡QwmI%u3ZK>D*< Y[F<@po !$* @1e]}UzKY*77W^_SXX]]}RvlOm,dꫯiÆFQ_~,1cƨPA7%=["fd'>ljjj[@PTw\GOIy^8M?H't⻞iC`@$@HD߀ #I愋 gϏm۶%ػ[y:u$iݺ7Wb̘nۍ裏b˖wܶGd;t8/5jj CԬ,˧%d]GR $m h{uiO>l7G}oŊeQhqֺp\ֶۆknnV]/pt$bDΆbmEZh6m\Ѩn|vڭn.RO>ѫ!ChҥQo{, X)S&]7o֯~ۀcf{^TNNFc PssKY2Sȑ) %z$yċ{H囀^o{PSSSsڼ}oEZXZbJynFر>gҤ :q}5ۯt饫}' GZ[[$jmmjMtCZT#*P ?>zy%%رc̸;w><箻nׁe~7e˻jiqy駟EHZ2IRaq={wHotD$_ s[[Yu5֕h;qj}h9/~ c̘ղeP&IٲZd- .=9y~mذ9LJ].؛d@ou@}#p`M=sχO$ù/_ڷ"ڪ'}Quu^o2jynm~\$77G>?;//Oa%cv:I]?]Oox.FL<Γh_Y KR;3f@zΜ9bBio OYYYh/IoȐ6%oGT)r@"/ѡzw6 yOgpRɍIf+W.WKK{ 9-edd'?Y7ޠk:ώ.QEP6O*?=R裏]>K o!ύFtpe6r.{@eۃ8kkzGbUuAaqm۶ ^uhgasƄh$=ID#<@V'yE  "oR_-2_JY0xY8y䐨ҍYAAE (H*>&5ez]Vp衇~5k^E(Q7N;h4zCzk|n =&~ۇe6|%Hd=a)2F)ظq~_(Hy瞻ݖs按h= vtC 4I}d &M6 !u$ ,DxΘŋ"j;|K^l^cO-HH3&}vmHw%I%###ן>}s&oXK96 1TF l$]iٲedqAlFPٳmKvǎs=/}z{~s /z^GG}ql6ZRG ] Gtd m'Ξ=+I6m.\m$bԭ~-ύݮ]vk:udZ5x wy*))'OZZZdZ5tP͘qTۯ__ԹK,֔)]-\L&eggH'NЈÇ{8Q&eddO>9r;o233j_̴]xWB:EG)3{;H RFFuq5yn}%*+dd04dHIL={j޼A6vQ/N:嶿Ae={fΜeeezng8p@W\q KGGU__2M0^_mI yVee{oiiQUUvHV X 23$`Pfb(Ρ(`4URRrUTT,J=z(q uttxw/|κ:s}w?_^nT{/ϟI&vowttNvg{Կ]pn{뭍*+;(ѨSӘ1?~B۷Pmm^zex 껤+ 5K͉nJP,'r\DUiPI!\=[GEElz=h#F $ڵ+๻vv{MUUUR&I_&OG$ X$%S'UQQcbСE޽[vٳ5*(qiIVһnSUU$ɓ'k„=q5j(:tXGUCCrss֮HFCmOS=ZYfwD:::d65x---z5:qUҞ={uUWҋ/$㵇Ҋ}5rrr4h@UVVj׮>ーo>l6 8g"X ںu;.٬ѣGiƌ CYwnnFߖcBh^_[Z:Tjjjұc5r䈐M9992jnnYpvXl6KI҄ 5ax57%dgg=^ǚٜD7 e0iex.p8tXgwIIq숪*"k )q<^nN8|]z*z7t_ʕ+*_϶]Nku[yh4{}u8;vs3y{w籱c3R*ktqiڴn8g 4{ 4ʨ-\MMM6).,Ţ6[jkkKTSRnnsFm3%VJKK{ZK7KniiQvv :GW555:~JKKu%\n*//Wyaeffq0fh铯}rr->&edxѵ?i߿{bE-oh޽:zƍQFjРA,lV^^7yy2gG}MM9Y2\G~iPcE|כ\ݻ_4mT"iذa*//%?zwAɓUWW,d<:ǎFu!áZ9sG[ZZ%uvi:w}[O<>yd]tޫCuϴsg Mڣ0vO6mֱcǵcNرSE;vF"YffvIKu%%Ҋs&ӧUQqLƍtݵPZ:TROǏnWNNN Ip-jx2D媮>M >k&O2TkkkwО={%I'Nt)S&k jooי3g'h:v옖/_ֽLUgEghڴiLOFԅ^؀tרVWyaUVV:p d"{}}oEDNNMNiЮDƍ?~\f 2DAjkkb.P/$u/es|_=9U^^w>wIRya566*;;[Ç @k^K8.(ѨRw}mܸIF쾗s9@`hm<<,}D-Y,jĉ?~\3.ԌEO>ɓ'/k0jhT}}x e@(J 픖jǎ輱f}U^^^yETee;#FtsV}o7ԐQcV1 8q{}ڵ({I҄ rYfСjkku_TTեfΜ>X---:~x91z}ΜݿwW ++K'OҤIv:۷_[}h47-effd2Q6[{\>lPnn+H;%%2LUCCsΒ|RiЮq 2D'O*;;[+4lXi F}} 89+j |/'?PuujjjcYo>Ӗ-رc2=z͛=!Xv]Cgbt4HvReeϨ>?,KLF M>MWuuu ޙfGMMMjjjVfMm>-DQil6kPeee JK{t?~BUUU*((9x ׫"ѣG%=*s&B yyy*--ÇUVV|l6_a͛+.}֮]hܸZ|sl6%I99~%%fNҩS4`=rHײWDXxuD&O fZRkP~vK`uttwJƌ-5{Jޮ>ۭZKQ>3Q#9#23ދ@tۂ,,8Py]rh4Dڽ{wk{΄9r 6=sڳgZZZѡ'Oj͚WU^^Cy`lϿcǎCMMM?>oo$9rUYY}bh̘A~i ˕fӳ>;?RMMt [IҌbqP;wFЋ/ǏQzT]}RfYgL ʴidZ֪i}?TYY:?P_ygk)S&k„!C`ҤIEd]ɩ~ǟLg֨]*..֔)U\<ǎo IDAT>}jiiQVV /@ɢP7Ot!={V---X,5y$&@3t}\~>ϗdhkk,9꼓wIOׇ-c|e,IYg̘yHC|o͛gI-]`@y}֑?<j@$c]]߳|x /8yd7 ۝;(8pO %@\PqAQE %@\PqAQE %@\PqAQE %@\PqAQE %@\PqaNtЩYg֨^MMMjmm!ɑ=Jf͚d0d2e2d6gbɐdJtz= VUU*%)&r8ljmmUc,eff&E9}9D7zvYٲX,n@CQ"(SeeefS]]*%⨭M{e&H---P^^Fc+ 'mmm]$ Nv=M(Jɞ={$!ͦD7W(1CX{{ GQ"N>M -Hk%bȑn HMMMn LaT⠹Yս|;bNtYUU5@ ljmmUfffmo}gׯ>tW)???M SIҙ3g /iUh6zaF=/33SՀtk%=zL&SZ W?ڵdٺukeX$I6lZZZ%I~ *'''!펵ڠz{߃?zZ n(JHss37ޮzԨFeev:1\7x.x)E$t9smgt$VUVVJ~'hs***bz:t\n<]C=l*+;2N@9{&M.ˡC/{& m_IIJJ}6mz[_ڭ*/?Lo6mf1?Mfs>}L&. .@6 %b>Mf(]cc^ye^}$IXZr 릛%i0wݪI&jܸj6?~߿ft%Blkkי3}v[ߵkxM]yt&UVjժnF\]z*UDEimmMtaJPѣGi/Z@_~|zڻw/E B4p`LcDt5{ݎƛZbE H3%bfc-*(,Ehڱcg'OJv7cNmذA}K'eէO3ghy*--`-NҶmi˖wo~9sFԷo_1\sT\\{666꣏>ֆ 駻TUU6eggkȐ!>},YX3z[om7qrW4edm^yU۷_MMMWnWe֦MokÆ*+;V 0@^x.RM0>OYA=a}ź喯hժy9=T[[+I2׾njkke;Zvۯ6O7Y+V,״iS-oh˖wtQ9K-\@˗_R‹['O~W_~f 0 fܸ暫?Gt߻wp8^㪫Ojuڶm*W]]2տ&M h9X,A_wۯЎ;th"M4AK^ .8_ASnڶ=T]]$_~=zΝe.Q^^۸qnr\uT[[?ں=8qBFA/wK/>PղX2TZZe.ѕW^uN6lب̖ӧPNNN|kڳgoz+waQ]g EQ boQQ5k,u7͍IvM4&K5[  R>?)|.\8{Wqq̞z шL|rݻTW ??ƤI0}cٗZ;jj[t2.]#Gs7m H,UUJX ؚL&]3.RRBNNv؅`n݆O?ǎY֘STr \_ݎ={W^DnlL&:|6ǰt2,\* Cu9x"?y \(^aѢ/i/jx]ZgϞٳw>[:9CEEEFEUU.]7'oVTTwÑ#[W !! 7n,Ǎ|!;R7l؄7X<,tMDDDDdP(9Kd2Y|h7ػw}}$$$Y+Vė_~ܫ6(J^>S [adR/no{;F7iiuÇ`׮ĭL&ۏoYlױn9r]F V `_yT*:7ow-JH… XnO7k "jM L}_~[ego{V٦翀_ns?E8qbǛc¢E_+Ʋr,\:~qmmǟɄw}7nHH*=4> `0…Kx,*++orssm7Ԩ`B>|a-;vbժ5lϛBkz"!q2?qj^LJPRR"crbo디Tlذ YYmE"|}۠Cpss8g4{^lܸ & ƍ[ ~V;wa۶V.'NĆ S !!7nv8~իy8y2EEEvۜ?;wzVddd"> l{Ǒ#Gj8|(N8iu.!!;wBiiYKNNÇ5@EDt|9H$F? Jd2m۶V Nwy{XdF,HJzEEEVIl&8g2xw?:q8}Ám۶GNrZz*J,Yfi%8w|W\nglNjUk^ZQk훈nRtj@6>c㢢"۷m1g,XJܹ k׮3z$$$wp5|}ZZ:vރ;vOň!I~?3a0II'jgݻa1qAVV~y=;`1SC ̙!H>{dbtE 8y2޽1uj"##jp!l+rssޯ!sƄ 9Xf-o1[5++ .e`РA5**j8Eb7;wBii n݆={:JDt***ƦMQS8ީSGdԃp֮]gœH$œ9#S@||"9o^PSS\7Xh1Y`ݺHII9rfϞàT*kn,[dbl޼g28{,֮jCOo߾0LHHHĢE_!//b>BϞ=@~~ ÇEΝ!P^^L N+V\7&MD۶z5VC`.\@n<P'99rUUJd2s֭۬r9fϞQFgϞ÷.Wk~gзoo;?9>*m@!j """{RUU^6m|=o>8l5Ν;>},RRR->DD^c X{+Wp 2RFOJ tO>9#G00 ^H$8txf\tٜHO?4<==1}xDCn<777_訩AZZ:bbѳg =NZ/Z  c.}@۶XzS?iDC׮]0{,t:ٳVף%%%h۶ą mnCc0olCHH|||zTVv׮]իWP(Ԯ^(++CZZ:6n܄bÇT*5~&b#LCsŹs̳:شѣG 7{{{',b8p fx̜X~Ur%((̓#F Ghh(~>JJJmKKK{|(d2)^{"4 ._ oʗ;՛oŚk 2#+˹+%O>MaɤX S/~= ւI """"'?;nbcK$L}޽w$[5\|YY1110 ƪ.]`_C@?:wΝ;W^1^jY"**X|FLL NܹsYYٸr%ΤĈ1q_C~5c4("s5g5 =z@VEECBѳg;vb˅jt4'5@deeYfg&Q DDDDDudxq8A@~YY,>k4,^/}WUUWN[-EHH\\\:u NbRd󚐐 [$%kaaayeeǂbs777M6(..vx; oo/<==aj0Ʉ2}!,,I ":xx?'|}}YYV$*+0a¤ڵkŋ/Y rw~~ml B,Yݾ\ɲZ%! mw ؼyERV\С:vdwF}vvU,CY@?v킓'rHHx۷ĕ+W,bm2mСC7/ {tl$Duu5tO`k""""":}́JBUW JҲOOOOxy8Km]]]ewp~ZJf\\\l&NnXe`^=i%m?GTuuՀČB!DDt0 ~5wn1]TT 0MvСoc???_Hd9 h4hw?K!ؾz@Gm8l_""6mX՚A^`G@qh4Zߟ턅Z]ۗX {{7Vg]Ib-nnϹyaRIsѷo5-͢ݍ]v8. [F\ds_Jbj Vg7u}OߟNg~ W Vy[.8" m6y"'bZ ))_CUUEcV ^Lj57XwwzfVF5w}⸗7,3KF Re, ;;ۢ & 7nƤIS#kw-Ù3ga2???ddBVVrrrmƐlc~پݭrrjekYYY(--6HOOO$իy˷yz5DD9se򼰰je萐5 .^RpCn]G\x 6ߛF#~933xnl F IvW);`uk.w\@GFFfMJH$X%ZS쾯gEDDDDDDmԩt;hED"FPPoh>둚z N={.zh w؅kBzil ֯F @L~YKZz5JKggf^]Y}zKw\۵kàP(,NqqF_[lu ;wDFFVŦMd2!.n2RUc߾}X'\~݉5?fGPRRb>T*vZ<ܳpuu12e2KXqzO0 11vLUUUXx)= V\">8FaNBbL2 |558x`Yܹ*++soVFLGRpQ^ëgy 0 HLLĢEXm﮶L>}zתfŲe?&MD@@^ʕB!-ĈaR&S8ssqx{ jѣygԩ4P*(//111cCvv ǯ\‡~?nnnnF^=q}m??1b8)8w>}+Fn£С4UYY~9֬Y 777j(Jf53bqu3l'N@.|:v k{7#\n]ZV<п?whx7uDDڌZۨbJy #t3ÇŌ!J`V߿],f.H0hP,D"Æ Y<}РXd:y{I:ռӟDDDDDN 18s ?_HJ:޽{c"##{o#55 ę3gPPPV mp1 {[E"`̘pQ\x 0LDhhbc`ذСÄ@ @߾}oԩ4wgΜEAAZ \\\ѡC{DFF`޽[̖D9r8z쎃a߾̄FE6mп?L zǛw0ol5IIIˇNC@@ ЩSGlܸzP7ul۶9& Kxxx B̜9c܏~ۍD\r @HHcܸЦM:X]\\ 1mT޽)ͽ R \??_G€ѐH$u>=z$~mK@ff&*** >ԩ#1c[H$ 7n ~W8qEH$ ˜11y$`|78r$۷@FF& ЩSGL0c@kji}o,ҥ?}K/`Ȃ/C.W:5Ǐ{]pp0~M|En]G@->Kqz\P1MZrcZ';r䨳C j4b Q5ؙR@Ԯ``7?{88迂[G75ck׮ҥߣ|l0wMK/ ?}jߟm $znݱwʪMrpE~tԱ%'}EEE:8wlv=XRDzi\tbUUU!??"!!ewK"""VTTBR٭}PPP}zoD߾}\ի's <b1g5I$""""" >>>7oƏc+())V\.G6>ԩ#ڵsvDDD-RXX+HO?|TVV<==}1p`," jfIDDDDDڵkɈPZ>}zOo"""""""""""&5 nDD555Xj NHFvj,2QQxчXucR)J̟"]P̲ }777gCDDDDDDDDo""jb}}JHpz.aQ+ƤQ;z4!!Q+훨U0HIIErr PQQ ^ }bxzz 44QQ@ hTUU쪨tvDDDDDDDDԊ1)A-^VV6VXF_ף%%8y2Oz!r?"""""""""֊7Qz }I%$lG}SMvO"""""""""րI jttM~oNKGVVvߛbRZ$ш+V:%!qNÏ?htZ DDDDDDDDDD- "6Ms'"""""""""zbRZ'YrrC """""""""j);rrvDDDDDDDDDD-݉JϯAUXX?w ѭvթ;vSODDDDDDDD.I;

S77HzC>f#Ct>Sj=j5 W?B`R*aT*B77 8$n] . hZ‘#GqH<]tmDDDu2p5޵ƛ)JDh'E יAnF]ߟiQ]wiR*=vcQ"Ȇ}"g  Z 'M]e(-6;wCsEu^cja=z|NP@ FB6baHeeecϞ}l~_/[yd2= ?< ]vH$jQEĩSitWfN*wAȆ s [玠Z ;a,h{**u{@>l0<ȈVLc Z ' z0=}ի~z~L]hN@tH# !W'5SXf-o۷;3g 66[bݣO-Rm6 л~یe˖Ð47QC{tɩpY3 l4n To +`m@k'S4>D6ͽQbVA08;fd0@w*+*eP6$'!?1iJJJ`=tM~TbA?9C D&%Qd2h4<e+k.0sc/a4!0ct.9;Vcb֬ ˗" Qc] 7ߡf6@4XR Ц}sƴu.BlgZ\׋=Bӿ?fh&X`4:;fO VzFi%]&/_of=d@DDd2a˖%(zc x$%̙1k9Ator(p+(ݺu̙aժ506I6)ҭ[&/AգP"hSD]۳O%nXhT}%tN"d1٧fXZ ՚uPX 5WZ;^͡#j1tɩ5.@4Κq@CDԨ9mu=Z ŤI5țP(ĴiSDDv\v/rrraD"ADDt 7\]]ɄTWW99ř3g~b[(,,+}]6Q+Ƥ5N:W4ɽ$ F#jum$ !/jĭ5+rk<+V,kp0 ٱ U_|UHInp61H%zz@1 Á瞂Pv)`*/sfAh&5[A'$D"Hzt:(Fm~:B>j80@s`3=VgZVt6+&ҡ[ns̽J ʯEm& \] ҨHwkg@I=F# %geC)thNxmНJCVCBDt2,\rs;!! 1t`7΃T*'!<<|)غu{R«?|{fbbRZ%&:e0de׫{7Ν1=Em|7c9|UKnbtTZ5zxu@30w~!'^=mΟoLqP=ե3]>2>XY \W eP-[q{ ~PLzakuB! A   0П=M淽0; ȇ_DDR K)1iDL(zKn 2C F~5Y[l RW_}_%BCCXcbRӦj*Ϝ.S듳k@.ѐDEO? ..qxuVa(ƍi8d2W: <2u2\>q rBCժP'KJ^c̿V$Hw Z @}͖H = wi !cի֢z%$$bc:wdb  Y7쳏ṕ\.oΝ;>ƒ%KzOj=w<;C0)A`@j)Fnn. ]l[,# AAA;ŕʭ5nƄB@M#5k. _/_I9ŤѠf.lZ>]>Y(ƎiԂvK(//T}ڄ$5B!y{5Z\eRkPu;jn> Ř>8B/oT}ڤ۫((nyy6Z\-܅]{j )ׇDp{)H4ɩ޶U d#}Fig&ނjJs5QͶwY3j k݃g)pC*6Qt}晧87l؈#!**c3D7eV?Ē%Kqx띐^|?%K?lH^슌pvDtDl*$=C1F<,6/͇t`:4{BkwUM1R鰝gxMLԱNo{mo՜Qv="jlwBBԡ=<_{^ itBXQ ]u&!A1i<^_id&{fBw==/ mMJ%7op|FD-_u~K9; ;; +3 gAD_z>N;l' Y5x`U A;a;C^>Կ6LEf>/5P>9G538nOͭs+<zit/ooCy~IĐ? ދ>?AѸA޽p4G "n_ $;5]p7n/8Νaö9|V+]ݻw9&2g7n7?3gΨ3ӧС÷5ᔈ7nDs=m۶{: ljo_;>j1Lj;Kjh6dC5m99xbLE$?q@5%?ӚhC٠ئd2]]zN>!>n?iDm;hO@Ⰽg|HҠ>|&^!f29cDC1A4Qd ݠ?ӦHRg݅q@hhH èQ#\{^nDJ0)ADDDԌ/^x"LU 1 }}!4d02$];C>v D!НL M" I[ sQMc]!{?DM: ]rjšDśAG1i QPڿMMknX ٨#=95٠= m)md#A>zryEU?! 8XѤȀr&L"{ġCDxifۦ[͜9?LJ=^DDDNa2Aw* |hMBLZme2Am dCA6zD{!!53M? mFy|(|[{&4Bx)t/5x KԮ-<^y iHd0@wYv  IMX= rDCҳFڤ>;#"r2>}n la3] ta|EE(**xQ+<%"jdz_6P;vşf֬8;$"'}N.4'S`,+F!wh߄ՏoBw4t6ILlhSRu l`6ILC ِAH65&{C^5@g?Lfi6*jWG<5Bo/r8w_$$}mRG? ѝCƕ&yΝ;p <g̪Ç  j{^Ƿ~tDDlΞ.6<Ҩ/iT_ 2ug5V?3Ku+}"!qLϜTov 3`,+W{sm8C6 if;\/gB%~H7U7 B y0\ "j._tJB("&&bqNJŋV"j{  "X9۩:@"p&_ݻmc,-5j,ƪdem# 4D~zz@ڿݺmc,) n¢N"dÇ֮xI-Jmġ!w Ϩw qPMJ% 0Mddd8 OOLph:vXJׯh45QDDX{ LL/g@~0%գvx3'ݫ΂K?۸[8/^3id)nmO8}_ɤv;N_kWGDz2j40TUecĎ 7 ڵsXXCqIEDDWd;LJB(t9P({zUD-5G v 0eʤ Z;uvX!gdBww7H{A1 3HCF;3uН葍V\Zw2t8,QߐDm }vW".gBw"#73@z[\\ pq{;$C6|>Qk;+cq %ۈÂ! D9o۴qPT ci) 5 L H2/ RQ2E" IHDD r/]nqNŎ[lpq.rPF Ls6ee iI.b{WHzߠ_k:(r!nlېgB&%2m|!tsk¨@"OmL5505MQ2 P͉XJDVv701ADDMM m]:Aޫ"{.!cߐ}F>+Lmݺ@ht I>+q ;L9ӷ4#RTMK4Xb5__5"DbER, 3;#+̙-3g~?׵y{f<]eH}JFTY'Hrr&)!& Wf|9.Dy# øYI۹ ăBa>} t0N}j mcQkwƓNN;M E@;+ާ+%(h'%&OL1S&Cݶ͏=ߜyL8RigĢ!(JHXS焈(SN=ak{r~$̙ %Ƥ$$cb1cVkLd+_O"wQ,c$_ג8Ի>5 FAk );Aݙ WΉZG T'LJMmCvO +/`WSǬg!xp]mxRq fwUF$jZ\; FIv;{11պx,VPPoIH<)QZZʤQ`RN*11ADD7*z6r@ɽ{֧ѥ$lm.)\FIW`ڧ TVzCF셶k7ASrL߃}|яWB?2bfB1 ?-r5OJͺ:KdQ#DD9oF}}iRGIx"ǿ(2!qDDN:Y"Ry*Nб탶kyv3%I8HsAt TAp8.m^RBRO M$\Ht9gdX F,iAQ[%YM6BUg ПI < 0 sw^t߫V} r)/V] Hkj ⠚ @ Ru5MDW,Ay>^ *gT ϏD۳ڞ)}ř#ep8^7"@ȥDD]؊&% IʍD7A%XmO>ODE.bY-(rH+&%Mah74BfäxLJ*/TY0)8!}J>/@Ha""JH$wYh43%2D54&\ĒbHeFZbI7 7xzs 6b.ii 2YOv5.( aMwbaQQG̟MMMۜ~YÊ(/0)ADDD!zhmnrz]jC@olVxfC{ߴX|P?I%IUFh Slm>6bI7EEDDDSO#b(6ml&}DDDDSӧDJݲ zAꑻ5ys_›oX,q- ǃK.E02"Jk(>?4sBݺYQzE%|0| EEMbBq4SlڅM0L\@e]PDD.キ=MpuGyygIV!""" P caD!\݉߇oKL _3 _AJ2]J*Wn7D|~&@뢫"~S y@5EDDm6w˘={ib- <äQ .%6ZAD?\uքm~}a "*~s<7xjڶ wS8#"0)ADDDFL  )!f`F 1b*`0Y8_fJn7$ɕx!/] 0)y` """3a`Ѣ1{ݻϴ5'r&<ĤQ Y@|٣dϹ@lC"a@g @Y i`R{" Am (Oܳѱŋ/]ד'rDI """ 0"QIЍ/{+0"L[t)OI G]GxD,3mf?y,#, ŰaF,\.,xhk;% cLJe&0Va&4AH܊F;uxC{K,(J_M4>%&e~mzT>q<},kupp@uuuؽ{vڅ 6bwc w.Ƶ^%DDDD%@$r~|\$$@MPа-Idڒؐ$r~$>mK(Wv#k~ڴSaEQ巷z=wr6k2}oI''}Ӊ2ŀXt?$Hˆŀ$I !TߧD@|E-0-n-ǔI**,:W^+0mlAԅ0)ADDD C3)'YǙ$ $ a$돶ufE1C^$`SژRMzUlZ^p<,ǟbapDD^,cQ>}N;m Ea2 bR(t0@zRT quhdY O2,4:vS1B!"Geeq駡..*#"""%Iп/$)I3%|SLJP,YOCi; #<,UEFDDа>/^Çc„8DDDDYIȟe{ЧDi]͏?OMۉp]-.DDXbVX';zN;w.*++ bC$"𷝈(D1j4 QAf %(@0S54O=ئ?7D/5m'8p[pΜ7쉈]vx%/@c=,.e(BɀsQ5f Iu &Srj04#RQmGygyCQs|^5QZy㪫eRr=[$QSR={XQ3s ̜9뺎P(p8p8&ݻ{Ů]aFl۶ݳ4Mÿ{o~_`Ys(O1)ADDD$6y#M̊ UaԐ,νOAټO04|Ѧ@P#)VMǒ(G<un4?0Bt:\w5cG[uI'K_ mi~Q/" q9'< f`O2`Sh p8 *M UbQX `%MlIBPUd}tOMݵͳF&MHs4興($Iرc0vlٲX]m^p? DLDƙiË$Q5O+$`FsEBoN' p$G0#I,h$yoZ^'aMHUpL;܉rXp]wA߾}ڔdxyxF-OsihDD}x YAp:!\m@?mHN'Dy$#8ITo@χDOTt &LQm9ZRt=΄DDya̘xɿ sX IDAT 5?xbDGDƤDyWQΒ$H'( ;^8=̋t=H:Cp |U,ۼO@~̔O\.LClV_OZZQ 7yX(8~Op?L{ΝQ:q%M\+(gI ,":=j&6[|=OL$%?-(=P煂E$@,.L!i," OR!b%|EzG7uLHu!_~&Nd)NxY(1)&N&w>Qvl\,#@,.NxZ}>ba!B,2SaJIZc bQ "K?O!GIJU\oFnL۬[}$u({1)F):D$B4+17Qa%lĉHhZ~O}&}Z\d"a p|U$m.AoYBDE߽J ,RI4(ۤ"eYa2d![126gdKJ C[ݺA*+M,loަ>5uޞ=#v]qmp̚ !ɲDDfΜ$-[h4#I""NLJYUUL@DDmr2u17L;pZ]k͗nJ$f],B,-5S}cN/߄TZĢi 6'm.OosT\Bz=: Lfʨrt:Gxi4? CIn8Oa<К|@ Mn8-* 3% DݘȀ;UdYٻ(?ɽ{A7aRBo<}>9RʈDnkw6rU/I*H}$LJ۶1Gph/%WWASMM_< M߀૯ ȬeѥhMM<$tI1(1Lxo (9x`Nڋyk&]\"CJJJ0r 0``YRMEEELHP֑zCϴe+b7ZQ_nClFb҇ TANo-mܜ㧃K7iu>5);D#!"Bǡ7ؔݴh~4?l$yy(-LHHqq1D<)s:)l?#])a娨(G(BSA~AD"GD^A$$ l IweTZ  Ao:x6/ ) b6$n(ܧ:-Ǘ`;?ĢB%so}ĐjxMS[~kRvzuyCUE e߉󠼥ًEŗHԼM[sõ{ Qt kcGmN&Mxܦ;QbR"K8N8NNDD}6x"˖y uܕřM}|馾5 :By8]!gyahbkי/ԯ/ǥO^ vg7GtZO g@G #k@L5m+( \^ uWC^iQDD]FIIl{" 5͐TU޽{z6%%9(7ey@_؆ 2m[ѕXQE׭GOM6vI֮Ci#C5ml m`{@ݝ8t,mzN\W]cB(Mjj$e֜-uæmzQ&Q.o.Q d};"hm,`'l#@6ru"6t$YY ZSi O[x9,a!Wn %_ׄ0B{ ئ~^{ô 7\@*+&@".hAI|!bEƍLgI@>5LJ(e ۠PN l2edRwKw[2D """rj(FBzQlExRhF6ϏȲ5[Ia6aC-Iʉ# xL/Y ZC%1!t9&n$Pm萔[TپewrH)2+r"⦅X\ {C,, :"m!(..2PWWk?/Mvڍu֛Δ(//CϞ=9S(G7(KۈPƎI0]w޵.6~ 5@O$&A872 D,C䃮V,%%43}*U6l6.#x= Te:>"mŲRxn/h$"ԑ$ Ɲ|ij+i}l2wKŢmƍI2D """"A~XNG6}_,̜}B@EFe Pƌ.0!`?i Iރм°m;ށčDʨPFL}iS>hSqB^/Z _CtŪmzܗ\ :"":lƌiP?tu̖ر&b1XO;mJd e/&%`>v Ǚ|1B(Čp m`'ZY`A9$(d.l9¯ (ČP7!|FmP'K[Jp_s%\$8ϵ߃oMZ :Bo_ClٰH{[B!"1pfϞ#ImL2 =iaȐ!'AØ """2O0qh7Bh+Ka =F ~PN9ٺ؎`: i#kмS465(?B9y,KolA]F2tpZ :Bo@ݰ)iso ?ρ`Y %|vybx۶xɧzgy~!$."( !eDDDDeI}8DWEŗxEp5cmMnjcMJ'A45kzzR8gN0¯E-G5mg?i OOEγς`D"0@At8⚔; UE(;osTEF2jܸ1b0|Js_ƠA1mTز,G㩧HļDuuN?} dCD\]3 i;/SĢȾ] яW`z'Xٱ}jvS7mFO!d5!xĴX^ӡ0ܢȾ& ⅵ F49mJH؆ F1!AD%A7m0 }dRb1K?Ɲw/fnrM7tBgODDDDY>d8= i.E- Y _ "yOY3M @O}xEOW$K0"N”z83CvN6rwO?",rqp%]IUUu1;F3Xp!~;qP:iӧOرc8K(S$Q].8Ϛ ǬIVFP,^CO>d.:RYYbj뜳9=i'}i{ Iqp]pD] "3h~1uI+cG1ige.cƌNZ:w#fϞ@ סPs/kjjޜ4BDI """,&Ws4&i[uV, S~ȇ< bN^[B9qdc  ΃2zTҶ_C۟>=x'.VM^ σ2rDcExiyƤơ~IDGDD!"~6-o /n0dR|aܗ۴]w݉".D'8߉(OBo<uVӶz4??k<B'(3b*>Eߞ@d2 VK.<2>$M7ui[}#>j'OMXǞ@mӲR/N pSBdz0O֛ jAtDDeee~oߺu+~cI`!IgZtXr~XziA#I" $LJe;AS :>ECyܗ|I!zs׿]!`mzp]m.֮cZF>5ާμ#b]įtxE:܌G+}#P-up}S F4?H;-p̘ -76h5Q x^G+Ӯ7ܗ_ @,l߀}&ys^n#e>=i lCէEZN6nOmq+/ګ!B?ЄGG{PGLGB!( =~gjT?k ;yc^pt?F|D]ΧƯ~6'&VSSQNDP]](**$IXFIUUa]عs'6l؄O> Yaɸ_S'3!At={Llhh!cH &"""kw_oD5% HhÚ}ť\}eN$$@pd=֮$ް7!漯Lusw]6!0tF8 #N~EDЛ]*!ADԕyyo_@v~ؾ}7p:lD"Bm VѣGe))"<&%ru 6w|g#ж%+*{p]z14EN׷/XXA,}ڽ뮁rO(;TcΜᄏ(%#"$G_稬`Qk<ƤQdS!ُ =wm0xoS'9z7 p5R~E3ۧ#G{ˍpL}JDDD஻~cZR)\..on3!A瘔 """Qʰ(6|(u&:Kzu&<߿ r>;]" <|LtPY\s%jKMDDDK̚u&&M'| *Y 1c:TTTt6&%rTV }xfl6(FsհOfK,&{ OǟBd"PzjA3 뮆}yקDDD pmg^ Lgce&Me]g.I """\'PFtZ"/8Q#R'rvD{k}x) ?q8 @tqQׯ/~;p+{MNee8Y8ܳQVVƙD]DDDDyB`3 'Bݹ !<m `?T8gLTf}hnjZuvt6}:S"""Ÿ/Ö-[|GXn}JbAO'AB$֌ ℶd@Wȯc=&/G\@Fc˓, t~`HȮCG,Kp\z(..324 h i4A I"$I,۠(C{uAQl ~}4WߏY?8_0yp6<> 88-[vɘ1cj05@l֭;wAÈDÀ(RJw}0oDl>[uzݐʾ٧S"j+>=~gjT?яw@{D~o߁m۶c۶ؾ};  D( n\.N'JKKQ]]jT_xHpX,ӡ(a@UuH$@lp8]x}.u @*-4e"S&f: ͔IpLhRvcȐ2dpC!<ĤD466v'@CK>>{AUUod:$Sh`0%S#bbB\.EtHx}H\.#&%2`˖طo_6n܄J/Sss3pTUt8Cu(_1)ah4M6s) طo <>ku~K5e@8izd=o^Is IDAT"""""""|q]@48A>o@4t(u> b|u=ӡAt] """"""" ȦM>|شisÀg,*~!ò@DDDDDDD0)a-[,e֌3$H,CsssƎCvu`R"Y6 ۷7u Yׇ쒩QW¤Dt@&M0687>d"""""""bR"N| xHu$D"ׇduaR"2%a9MsC!"""""""J&%$ xm|Bi?i,nb4MKqx}nV]"&%Ҥ`C6\ELH +ُ爈(=Hߟ8WʤD\x҃I4 ȊseŒ@V+^Qz0)&H$!PYq4MO1(58W>d?#"""""""`R"MTw +Εai?ׇsDDDDDDDDr_V`AtYE4^WAmN[f:Jgy<@vۭ ho6{ovTS'3gfY7axW1;z}CCy1̘1 {^DDDDDDDDĤ%yxѿAUvV4A,gF͋>+1~wa۶mߴi36mڌyo?pDgGz;""""""""Ƥ{#u(!dR?spqWaРiRıX #}6y]_匉y?È}ͷL}6i*}c%%%/E]o$$nWPSSo}Bw[}5v""""""""nLJP+`g;zA _O[v~՞֬YjY/M7߈ݻjg?nV7VffODDDDDDDDYI j*yQٳEgqZ}wQdmcǎtGZzM)S&~#!=<<&<쿾|1iD}Q¤<ߟѦ}?㎟ֵz3NolS/Yglyl޼wڵ}PG>fc|1cZ= .""""""""?LJ_ªUs=>O>:fôiZ- ( oAu-j]YY}u5EDDDDDDDԵɛPill /M6!wh 0w˸Z;vtKkؿ?jkwS5'&7p4dH$jXEnΔbًXzu0kYWNÆ if/;|<gLQ1)żʫJF6a8ٳe[4XU޶m[KbbRI.&M8j[ZmSj{߾})96Y """""""""J֔bR1K?=[mnnؔ3fj_o35&r_qq1Z~&""""""""J3%JJJZm|ͭ=Om&%rgL.]vI!"""""""2(6 նiBe6M(,Y'NhILy9>^oϑHվ) :wLADDDDDDDD93%{ӧMM6,{Z?ir]̷u!^OI,] wiٖ$ cǎnf֭Rz d9^jfUظqf᷿ 411o|ذa#>S,˘@07x=K,(1~_̘2eJJJ,~7DDDDDDDDDmL@+,,5|c/0 },Ӊ .8+V@,m.++kU˗jkk/r 29g9gVNLhEDW_}:n? ~.v{[m Δ E]QNlsK/ PXX,X,20}ظq'CKS^^[o|}jvO~%11p(..N[zEE}#DDDDDDDDp({WϿH~ذ>s ,āZeY)X)&Mχ9sa݉u"&M F:sʕpneb*GTWWe{UоVXj!"""""""e7p=gCu,XzNH5,根j'Xo=rı31F?^ѲK0n)ѣ{g,Y&"""""""7Q+.rSa@UՖm׃3g*<ؤI#3N,'a%?R '@YYYv,Ŝ9+Yg̙0bXcLJuqLJ7[nlk%IE]ǃ+CQZZxq⤓~͘1qWG}, """""""3%(믿řrYgly py`ƌiڇ 1c:=EEDDDDDDDD3%԰aCqݿtA7@|y~ GDm!;\s羌v]t>gHQ &%!{FC`͚Xz jkwu%v;u+FUUF#¤DX77X1H_~.7p,$G*fr*QaM4e+8W1O5ׇsDDDDDDDDLJntFV+IZ\x҃#ir2+ُ爈(=Hכ8WlK1(58W>d?#"""""""`R"M2JQV+^Qz0)&N(((Lq$IDl,Cv@DDDDDDD1)F9ˎEc9!{iTQQ۝0(ۍrˎg!˲eǣevݲ.u5LJYUUL@ dܸ\.ˏImsC9!"""""""J/&%ҬRYYˏ( qBX~\^K DDDDDDDD] ߿f/cx<,zEl6<OƎCvu`R"㳀g: x^֗,f: ^2,[ DDDDDDDD]QC TPP!CgdΘ ͆b/>dN6]̏u!`a\C>*++1|xE1Y8eu(q ߿P[@ 5ۍY]@QAp,p\Y=Cu(_1)!%%%())A]]=2R^)((@EE**3J(EQD2R^lp8Mx}H\.#&%2Bhj:ߏ`0H$U1 e v. ^Ep:Cv;v;4MC4Ơi4Ma࿇dI!IdEAL!>tT~] Yt~5`=ӡP$ N&""""""""S啈DDDDDDDDDDDd &%LJ% """""""""""K0)ADDDDDDDDDDD`Rwqsd&զ-=ZR ge Q9TUՕxr (E*M[RZJ[ҋi4I2|?&ddoz>yd|&|N PtJS(EA( :%@Q)N PtJS(EA( :%@Q)] jGUBڰ;m# ZR jMsidPz4*͊Dd  HDR \.9+*YU-ge.WKeB}2!Y!$ gvQY%WuGK6BSbn.uQ`\,ooh>CO/IZ8B]XsT@<3T6<2%Ôi@"vYS+WC^oKĉtw (0~X E$9r54U_OD )Q"ꮕ=ڲ(Z+{W銓ju<#PZf(Hw"~_tF,PK\u )?P`e헱ܓ&U[KD )Q?}§83%]*}RTOFGR&HD2hcDMMK *ޮH~n3@8$cOULBD)QD=nkK5@xx]@ c\,uq0AXϧNjl]I@qXp[̾R&<׭P0p(RW2~WX_{Hg"2:;2aEee !e +{ C׊N"]eh>C7`Dh`(/9${pHRb S~P OJ] c>]̐2e.Ez 3Cʘv3[(eolu-{;Xb`2C!E|>62gdB. ơHo"]lj eu+CD)Q`wd 0(3`T$؄'32䟱ľ%` FGG0)Q@nȖ}@C eE$"Wfٓȟ/+ȌIlwfK znF>Y YX@E~ɤa $]"ktJȎNͭ kG'0vV$"3dsk0rCX$:%N`PBDh`W|#pXV `GV8w8"5TE( `W|#!%#0醼tJMo)Q `W|#,#Bؔe,߄0Ca:% ( O;yaYi0MÑtnBDpe`Gйe^(tJp!EA( :%@Q)]M]SOcz{KZ#Zv@o h?ROvZ\CX|% ?n|O? ޻WV($g]fp晪<`9\/J2 -S`kk3GϧN{?`PT1m?\%.01) CS]ZQzOu롵4(0_Rmwܡ^,+ػW?I&p@};[ᇇM5+_?(ӟ۶uzK}֩o:n5upNA`?+jC>Qd7VvxK~{E4媫9hm'T?YlN ,_ IPSSG[nHyNܯ,+_FtHTL"A*{B;w #u̚/%gqG GU2::dFܵp[v|:EXE1S(Kt3uqݱW"!ӲdZ`LSCuu|F&EDj6N֩U}%)?߶Mm7,/|Śr:P9\.Yz^|Q7ݤƍiJ.﷿մkFN L_=խSWiz#$N_ ttk ҞnCkv^7}k:j2J]ju/di{u}I?SvG2٭:B|zHO[o8tz{P_cN_ϞXT¡Of{uɱ5:&8ky`'oh3Aŋ:$$rnmUhN{Odۧ}}Uho~#)afu=zVRdBr75r|5uN:IsX!IrOi_?u?:zHo-9;W gŋGnEsSeM嬬:pTwɪ>(mj[71Cjr9*+G̖yeu=z^}U޽2jhP!S|r54x^D7pY:G?k]wɷ|{UWCդK/U>$GYիշq{ 4I U)_CRƍCZݒiܬ xyj8Tle̴MC0)ZFy񁤾ҡ3=Z8ӣϜX=ޥK^\4)#ETVN^v+bf;|j}R3l?(y=2 va#6eJ<73Us2{$7oۇUѐQhNzJGW_@ IDATNʸ ѡ[oUu[uӚ6Zby 8[,ޫ98|q\v7i lܨOO矗}2::ѡ^Ҿҁ;Ĵ V$Ю]~ 5CNWJ|vIntvjw-O$~Р{wVOcug -P{Yfk[[9яT1ceN Uy78U:˧HpH8VuUN}#Z}86ɲG_X0ã>=YWƂOP]׿tҩ/\_<~DD:A_ W}C9HR,Y"wS<ӧאַzG={vx ^{MM5{nPH.Uk{u娬Tǎ5kdkɗ^*GA'?i\;Wh7k_Mѡ_UΟrl+ֻVteAGU f;D|>m oޜz_yEۮZrO7c緿O<1ek^uwݪ262EPZ\#f? n=;6uH-_vUrUdQР,̟V/^ګf5u5esbsѐSq?)C0-=Z ʩ8Fs& *}=7`ܯވKJ͙>XweIϼkBt#uT%#ۭS塇*a$USͱǪUs1̜rCy4շi:zHW]k:|5_tn*Mvcz CUOI*$mK5K $-GW5KThvu-]ի6yU=͓>k`-[6vxйҴ/Y,Ij"u<~{Jz׬Q+D7N1Z;g^};o螚V-hҥћ"xCfq Ix<4ܺUm|j9?\f =74gDu#DJ|%qrl=ӟ֎]=7Yлv@@Κ9}W]O=|EoΤG? \DS%,K{'nfo~S/LNOmcT{zD_5K_.l )_|bR$7g:^ ~3ouH ^}CX +4֥*:m~ȁ{WuHHҮ]գEsz-{ cxUq=!!IaKO~jй .yGv&_A~t I:rox/!!I=AS~[7_6Y 5_xsho+/JXBЎj߱CNaYJM^M"}qT2%b=*9I_7A-nuD4=b6woVN(KXnP}!+<OH)kF&X9{1=;өcUQGWP/oFEo6 WPUӮZ眓FGCY3g}ӧ;gC FgΪ*yfΔydΚ%ρuJDؕ2.2칐3TpnyGSUCU3dx_ws #6̜9b ^p˖j:V(DP+|z~`,& ^u|ԡӇo}Χ߮LR*#gLotk_=-MzG鐦_KVLBVlPKmI+o|TtsUUNwcN:Ikת%Iѵsp媮ji*3Ѥ40&kG~E~|qKQ9++嬪bj-Qx@\i:%z^zI;-13gC:ܢ5KT;{?v\^R1eJ֜'OeX{s)gYqWIΧ>.@ۿu~v H:f0N@ |Pn{Χ38N3/g˾V?4+~}$iU^TĔ^OXj=: Wz%8RngjN=j44ѭը>f3k)>}:qko z}WH UN}쨑[hc'[;Q[u;jv#n Trj9F_9DRp&yΕQx}Wf_@ T}CΪ*9@~9Y3gCUsѪ:,Z5k=BァNQk tu V͢E9ش<s-yeUyWTp{.;LUO@Y< M*/e ,ؿd/Y"g]\uu2G4>峟2&2%О_R-_Phy+V~? IYxڿt ڥ3ϔ":0!<.PWr8pre_;ܾ]M5yB;wOR7$T;ȷ|>᪪";=`5.^,g%@սڡs' ̄Xcx2q;sRt/??[{ºivJ>5,Kc] /%uۧ'u]pT.8*ϼCk{^ƎC[٣/|htJ:xª84<9N5}Bᆱ^&4nmU5s+9D}:njw,ꆖy ء{$|:09^5}# ܩҴ,6nT`Ƥ;WM矯 RY]Ez{[Le˒Wsqj8 o+-]&[mw9>$IY4WYvόZ@=/<4qϝ9SݻS.O\6mRC3z׬Q5I7bDG^rqb5_pU9hM }t L3'BIөshH3cFש>]39k7W}.՟rJ{z\MMC $C3M'㖃JQY.0nCܹj\8Z Px ʘ/`w/ax }j=R ]}*u՚7BS\pI]}j kz>#O/ny u*MopƩ@vC/nCkѓ~5O֦_ 4k[-.,"Z#%z=Ih'~}vGj3~ݹ¯~`hiԫRʿb/-2:;er֪b4Uq?au\I_;kk>p_T-[dr55)S4kհx{L=V){2C!T9:Ku'ؽ+p56 U9o^t7ߔUΝR9ݓUw~Y}V}=a9=@w.@9sH=[W'yF;$PŴi;4MrYp|5_Z]? ޳'&MRj<<5vZNǣjBu=/=twG>g|%hiI:aCU#(e@@&PlvwJʲ߶(k {Py-5cڷo_XmP,:/ 5:%@QS]g(r˩,LV[yJV2S(ܥ.xpH#%H@2Gv[EB 3% K;ypvw8I ؖB/[ S\.`G^84D]9|#/.r%ؖ !eɬvw8v%#Mc2驠A lR0J|#.n[;rt,#/J:%U.¸U*];ܶux㨨N #Gb|㪪SlU]]"EYם)a[Z8 vpff732cpzi 6p,߄)>`7|w#^/S~frx.W]Q P"ktJй tP #.jq4 #^m\.9kSy䪫- \̒(vJdZ*kWW\qRm8.Fz󀭳JRguUPz7u@&ɸPI.Xm kmy^]pC-{US1*2ƄX/N(JFH@9sx+媫)uQEq$WM\ lz eY Wm-$/U7}32 [g׳53+K]L]CݙK/+jʔ햻Qt:֭eɓ= eTŔ)e!p8Eskd (CÏ5r56K&9km#lb9*YMNGӧ:%l="brSPFά/.iZ;UIٺ(N\ r7Ob -w$`uqLΌ (#o<3fv,,ئ[ecrS~=& \pTnd:$l]I)l锻QcJ᭔{T!az0Re"[n<3fPby0ǫVh> 8ΛZցYU]-{"݊}R$R"rUW/WC7u='oc?*]=m{d[73moʲ3%*?l4p/E=;<c,}3uʾm72,dA1Sթ&2 fr,?K=Yui.ydRwJ&Ls?`702-i0l)ɲ,(eF@H60>?M@!;%ߩuGz:.k5;R<4lYV$"P 4bfl^7$˲|=ʝS,*{4K] 긲!%J] G.2%id;I@V|h_cؒd6 qdN-?)@(5M?PLD½o(U{k')2ڂPLkFMl6PN{J$[+ݺXqkhE*'E5PǥG):& X^e]*(]~߯0<`'nb9G8wtJؾmΙdg&<ےm:.%TK`)TH-IVGGGW0ȩ؀a::::4a!(ɵTǣU͵mdmܸqi<oon!b-ߔ@dG?zc @:U Řƙ]_Sqg޽{|v wJHc?=oI֍7N$S0׿~3@:%F=ĞO4|DRdٲe=a<P xyٲe=NLvLQJ1@mJر#o_4wdQVl4wT4 dS/* \@m/bo(zղ`mFܗxDZ[w/+@(-v$De Rɶ~-ٔ7Y$Y7+c)mݼy.%bc, >D$vlYV@۶<$Βm@:% ޟxO$[o]`uP]s)хr{V ;8:ҸwnMlm睒 ^C:y\O|lH2oUA`ܸ蔰cŜ)˔+'vJdžȍ7޸7 >rP`oqܕ.L~M%ƚR}{ygH$V @E"m۲qK9&ҽ_nvweY OtMmGm9uJ䲃v ={oX +:mpyzfb,d1ɲ))sϼѾ!rP::7<ӛ5>+ ޛ@e|lHV\D$ˡlU^c#~Hw9d) ;P\1ǮnI5}}vPF xZEaݫ%̘߱I&LUd=ZccKWR壏ONsvPLܱlss9OJ4u<8JY@鮥{mȔ TK3؎afΜΠʳm z!NB.4Rå5̕+'PF겡MXcGy U4X3OmX=P:;;^y7(~٦T_9gY Uۀ!\칿;BPj/~CoSșǩFA>fDD"gK|> UPP#RL5BJlGB$;)x\<fK<'}W\Ó|>YyY@~Dqy`4mՒmmm|1X:s|ao@BgJdx\{O?d6#"R1 J~.Mv,7@2mbxn,uu9ټGy H?[Axx㍯iNS,+|O26d~c8nWѢO~;}>`{w jB.$%/l6R5<$C7xcۦM<P|6m7ئhCzHT#RDٞBS#6K.}1yGZ|_,`(ug,0S-ܲi1zM?/[m`H7Iy_iw?6JUS3]9|<JO--> ;-3YDIbPI\8[6x%yEw^Q~" /^Ƞj(,`YU\$}wSNIS^JwAMe6Py^)^\_2Wa,e( 0 tHa K b"e$D6҆2.OyD"[FY& .l]TTfY w}͖ȶm ()2k̻z{{T4gP X>!|e60,MRL0Ft=B.$<܏aD^' #ڹ~ߕP)U)HR<`h`ًW^Y4G Lܽv+W(k,y ?/ PV #cۀuJ%1h N%j]MSэ=k @1k\su=_Qϒdu:p*!@HRp_W\4w]s5o߾_ё֎['kdɥm_R^җþ cPF #K.kaT{J =8kG>vj:Ne^OZRŇ?ڿSa;==>e^2نV8Ɏ/$9sTs=rJSn .l]>O=3!ѯQRh$yN:餚KFMM9*Ӕ3 cE]{[6nE!;%A#Đ{n81x *E$\__wYO@a|?Nk /+08 b0DD]sRr씐J\ E7v{}?/yP?J.\:L7|ㆁsS7߸a_*ZW+>t$aCJ^Mw'%8D )_z'^喛#Q(pww_|ūgHaeҝ{>6m3R"3gpڵ~/bl

`u@. uzjݓgtSXb .|;%GFE|ۗ,\1w'k@O:4!6q>K056g[K.gE"Q:֮}/袟˿ +yxgyLxu '7}{].,?E4qiڑ]OZJd݊N׬x駏;~v ` x_gZъ= FbHub#|ɂHu4fyrNI뮻nڗӦM霝s+4ݳ[o'66~"'Y@*YHSNmK,93μ E"[[w/۟lib\ey U%K<_PSS}S0j`5k^yZ=12)VT܆t#CHlqJu]7k9ei1{ 0^nk-ܲg?ٞӃTa#YJ:uJH;'ܒvZ7CO8SNf [i~e˖*Zn`n4T<8rm|+-_WO1< @ Xֶnmi dN iL!b,xd{}15x3Ψwsv{f9NARe,Iivfw}>ߖzG~^  DVexoey<|!ǰ`@W H,:@W ҘGq)l$;,X!]I!t@~5d.tFτ<CH uߙBH;7|СdF(2 vTD.i`6${lgBF[e:be ل\ChF@:PXQ!Hdf@(?䁒uJH8ss'YRZ!&|T^^#J<6d نl/Q#DHs-[Y sR*, \yDD\J:[HGE2r"ryL J+,${~0 v# EY EF(蔐2*b,3\es P8c x._!#_, ?He<(@MĠLל ǩMkHv>VgȰ  ,`6 fs>5@aJ:%1Lǣmt8չ\ #SMhH6ǩE/c%6AyDʲSBtd0F3 "MHva$Uyl1%s! yP )NA\΍@eSe[3ds\BWDY<#HwJH 3\82|$;|ه",`C@JRަk&;{2:5]3ٹ|ݓыvLj<(͐@("tJH{e9 *ET\.b\|!<ٝ^`Y@"y;h<`N )!=,S 8@nZ;V yY`  1uJ TGVek| {='kt7# <Y`"r@(픐<]+l+|z2t y0Fdq<#@ٺSBtB^} Rk^qyGd"E?"$GD!ty Y` R!dN1"B@28H<y`l( DoNaAS4%y=($D !J QH@BސHdIENDB`SeaDve-Kooha-12ed227/data/screenshots/screenshot.png000066400000000000000000000651171505224011700224130ustar00rootroot00000000000000PNG  IHDR0eb sBIT|dtEXtSoftwaregnome-screenshot>3tEXtCreation TimeSaturday, 23 August, 2025 10:45:41 AM%i IDATxwx[?𯎆%yq{@# # fop̖BZ[[FR[J)* h! ItI ے-ɚ?,)-!y=Gg蕔=e 2Gd;S(0'""hHidn( "a!ċ'~H 9@r ?HD$prτ2"WOjR|\n H:1B\9isEDDIWp 'T?c\Ή2IO/G||/T@'d>W߈H,R}dʕu$Ojb9jOHzbRHX+N|xMmX툈Hjꈴ>婼eI0 rkCR} /ݗ&.$'dVR bׄz"\#ȡTH5dI-˔@i/'SG:jE]tbJĞ"3p3dEȔ`:::d!""$یDc-N2hHwHwLQ:Ğ,uS/M+4Kf>x8ռ|b1POZHe'""q$sҖ"dd}O|dGADlіZGDDIde}2A#ڐHY'9%HgȈ]nlų.^r~DDrI 4ZO"HeUD֋FWj9R ˄02m9-A(dOO 'J@pG>eўG[:q"#~Ee3D*w0p'i"* WhH$3J" -БJhBׇx]b-Qr9F)eb>&xD W[іGAD^zDjTS%i%\GZp4i>hC̓\s_+$>j;"t0xW:["lDk:It4>:ɉ:R#`9b|D?"G̑0xW*#4tS;#pY`DўG̉O'99BGB-x޾0m4QjE<` "JDNN֑j3&pp$4x;4|H<:b- ."jZTHci|BC;`N wm>Ʉhǻ.a>%:g@Cy.pyk4Ծ\rI>8e„ h4APUP @`@Ds<ln;FT/}Gj GH$x%$'t4:Bk-…H#:+΋***i4DDNgm?~ߵy/. F H/C%|H< r5G}tyͽ6//$"""۶}%\=$4S!VX]07th}cvt:?۲e7|8HA$$&hǻ..Tw bKe7pQ4Zfnj߂ O{ "" K#FX~W97ozdPzM"Rއ؅H%ZpM,BH/8q҃ )~~""DXrxCGA*%HmG JTk;mb < nm+;R0oҼ=9Cϳe ]i$LRI4b툧%岁a#0-ZTkVj4)|^"""Q8=W\ޏ?8+BsK1?<|""x$S:z/p>jo`XhYDt:?1 {Ã@\|>& B6v$pVڵBC;p{:H4“'O=nPzHWxnH^Υ"} :Ą.w٬P[[&?QZT[[,\GHL)Llt7kj ."lfw}U|+7>0@ ╕ϳZ{M,&!$>l6?~ C#t2%wiDta "L~9@OE#fG",v xb}uQ&s:xk;|0ֺ/VU.ў#LǖpyBv9 DD4ܵk <Dž]IIVhHG I<,ѶAnq`W'QF"""TJ whD%MoHE%+˻LA],hNG|jj+qWZ&x]v}=#{u\@=wGuF"-O;:J?$hGTwqE H6vo.e Xu T^Q:J9X,᪃"mrR;w{ﭖDp6[[B{~DZmF'E%ŷL @pv*L ǠA. QVqp8p:p:]p]pxT*@Zi4 .,Os'\ +}oi%tQc#S @NJa_D0Lx'.FLCbEv{`ZՍ3gl6jr9{%ajlƙ3g [qT!Dj<*PV'O/RҮk˗a޼*w]veeCP]]e˖bta_ň# /bÆ8u.b?<x\r1lيW^yɓo3gougxU}XE q-7 o>ێft:TUUaƌX L̿?rjjKrӁ^ = "jA 7V :ƽ_1jIJ&b(**xQq_ʕOG+^Ox_. O?, X܂lٲPW?3jw܅c*COO^~`#w}+W>w)s9Ntuub|]]p:"Ots*u sl#/ -F$^qǷo_ꫯaٲ%qHƛ AF+"~ի߇?nC/v϶f̘ɓ'q*k׮Ð!WCb˖ϰv:zxc>ߦ}/2U*KO-[onvX*̙3q= #w-?ވgǓO>oJ=z4fϞe˖j=K*;eVl`tK9tz@D2{=A=?w.ݻk{%,ƬY3Y\rq5k?t#Jz P>hP1|{ʕj@ At eyCY+!9.іV eSK"uB }Dj"R,_Gee%[s{de(..#G1}۞]럯OhPteBׇ[mrƧG8عsW9^VI٥Oç Hԯ15$JHO\%u%Jsxp7aݺ8zs?|jRBBACP"~ ;%%5*wl뼙ʐioLKf"%eiӦkƛox;HAAAfsׄ^qn;lGk뉠A3b h2A/-Džqơ * 7t :;d-+bTNEq><o I\)~(@y.n$v(n݇Qy76h{|ƦM͏;v6Jqco wyOv)b^W(b%\pԩ5kZz}}}A>#yвe˖b 7ΝGϞQ2 Wd,9j<2VHl-… ,Ap뭷G/ۿn/]Bݻ￿&uÇ%\"J-t寨iӦnw`Æ x≧c`0/o=z#RV)V #!Nq׆((w}P]ضm;6l_Ѐz&:?*ɒ%b͚6}wc `ذhii)S&ĉ\:a\yxE*=/I˃>e"PQ}.(]pƣ>W_ݰa$N),/;qH}qM6_Kky)}Ri[l9lN̛w^kk'‰m5kK}RΫLz Qֹk0uꔸh470a< *NðaC1ƍ_|K\2jF zYoE\r)<σ cN?T8ݑKЫ@3J:.tp_LfCG" !߲"[ADD&p/#Ǘ|#LW.n݆_Wp8Ά|F=GRXX(h:v ; |OibBk>B+t eWQI}<ȹCDykYo}Ё4=IRwSzL\JDDaJp)Jʉlذ#a@<V|WKgٳjI "JAHԿ1y䱠xwqRybժ7Roz},9s ϿӉ+cǎI\===ӟp]w@N:;;3gE]mێ[?tyo&\tsؿ>SNn`0ӧOǰaCɓعs[``0P]]s=%%%qСXfm\.^ӦMj5F#1y$52~?pD, Z-1z(L>M;fՊ^| i{G wwZwiݥ6ڝiCHiƃBUU%Z-ZZZ1f577=",jFUU䒋5hwΘfK /@ee% QZZiӦ_EEEp8ؽ{OB%[7[d©B%jHdbY&s!?_H8} VASS:]::Ny@v` . ۍ0aN7oE{{;SbҤobcƌc؄nwȑ#ѣGرcQ#|\qj(** MEEof Zn2ppE j5,~…Gbƌرc', ΜĐ!'Oh4F2 ;<>|HF IDATcAx "wQ2 TFAAzzz2kf:t(_s݉mp\h4/l?WĉA۷uuqWE<񵵵wޅcǎaٲK~~>*++ֆD q!8NTTTD '-[ Fcs$AcF/Kss a72d 550X,hiiѣ*_:CnXwRr:`Ҥ4ieV:ݑ.bh0r#0QVxr6l=(vaA'uĉ(**•W^o6n[e0hooE,ڵPZZ믿wu@gmZǍM)8пnqx+^===xp@L&Μ9m۶w )5Km?W9sF6ʊnߖ%bXk܆NnLJ v]Rf|6eDƃJMM  D oEшB .ƿ/x64448p&7E?^ѣGсe\sӢh9̆Nÿ1vڍYfm+v=0a<6m& MMى' &Lǭ[? [܂)Ug yZS`޼: bo}"V[u:>|/:x`rN/^?Ԅ c̘Ѩd5} 0r%HaaG*M1*qWWz{{׈/^1QSS.45;w 9sƀ01~8 \O>ـV]ݻkPSSa̘Q䲼,]ߤ[+'l 5f 2]w-qa44G[[9#G/С#_mC²ejohƄ r Ԉ"T*:::`ۡ"^FkvX͘hmAl6C>}8z{{a41r䈘ee*<Z;A j; > b׮O0fh_K>}}I[FJ#NCyy&O'~Рb{{l69R{ɓ'okf`迂la Xӑ":555ؽAetRF&v"/XWDj׻o]ZvJɓ'϶abҤi/0w\;vv{_2Q8sglhmm*M&SKW;}TRi:u LkСشi3T쓗Z^ɮvh((g47HYgذPFOO/ZZ|:jjÇɓ'FfXqD=(-a]oɓmvtttF444xץeРb|cӦO⿜6!nx<THaUVcz]RY9oMt:QUT5k&:wFi4 T *b F̦e7܌63jjmv@{{w@Jf477'<ܬ,+ǏG}}=t:1tP Jl \Z~֮]Ç`„XtImNa٩Spԩcy466zT:T ĉ6L:^+mA`舓h^?zbҍ&e%_Epޛ 7;y򤿙%0wRݻV_j׮l q~W)5!JP_]aٱc'Nm%%ƍ4W\.lcq`P}uBUTTp`߾l?6?A#??MBh4ڠ}1tQJpH=l6Vn. >"F#FnW l6\.N<իGCC;JFoV\.X,ر7?{sGшv:t:.2y$t7Vv`Xp [!mʹp!;hnnƛoh47%̙}?^;Ʉ'OaϞ+?$ϝ~dZr TZj[PTPju0 (,,1hP5NbaS e2z]Z1`̋@55hhhZ񪍥K/֭^,^eeA/믯 {eѣ  8qv 7n\R^IAbŊxd2aÆذacV*̚5c]tɒ˰v:466)hZƕW^?I =*jCoٲuvZ/z6GHY<(+10-]fUUUE쵮q5W ?./ 5k`ᔕçnw,))ioΔ)SC,>oE}}=:;p8`41tPL6CVE|P\\;w6 z1g9Ac(UYYn}8z:;;a٠PTT#Gb))cH=E.t*i#2!`PLP- |n""i{{Ϛ'`@eѦ0kxd

͎DDfn]!&@DDqX,r!1x:2o1.%f]!DDpr]!.@DDIr!k1xׄe.C, "ah"Ŧ0x2!!i(Sy<mmx?] r DDr!͛]rljv{w-vڍtwt:ӲoF"9gٳRҲoMfY"Dm<(54K/VQt:q>};w°aCq-7cQ6cS e=xE ᴴGGmޓ([0xPjh8_3p8FCqߛ(1xPFrx饗e >pݲ(0xPFڽVHZZZBDH;w~v햻DD2[ w2/kQVVӤBj͚d}e˖XA)` P^^u\2 I$>$#G; }}} 6//55X*;F2%#Dh ~ETTTD|$}}}8|{l%돊RF""wMˈno*-e"""1x(Ҷ틈>$dW"u,b!^SDrbI$ADDDas=~he!JUq4}}Tq/[ܢ۴Sl6nwZ%z}Z-s'wQ2R{$JiC At:|&.n4; >eY)"ZJ DD>DDD$xPdf#jV"]T"AYrvMMMhoFAEE91mT̜9cuPT0 Zi.YMbc<Ƥ^t:ҊVljjj/e5{,|f֬Y}<(+94-f'm|뷢Pb PXX}VAY5v^d`+V."6l~Ν`Xd-hٳ݊aÆZ~C$ǃ\qr?6d

k׮[o#krpÇ჈Hlj-t]` Ai}:Bҟ.QDOa<(%:|>AY+AD$񠬔Ja$8r8d񠬓Ú"b𠬒AD>ljxpĉz]Һ_"\Jq8p˄iC0 |^@e;$EiӧrH4sϓ(DI0x'`@eѦ0kZH2 DDD$""" I$ADDDa """0xd

}>@ףCb ƎAhllBoo!")FIe!R0Lr(iZz!3UTV]0ͰX,DDFJZZFNaЕC!  *BDD$!"""0xd

ETvcK[1;$wQJQQ***PQQ.wQ!wQV^G^^EI镩N;ߛ6M\isw0 | ʲhSD܏C&OFccz{{.JVGMM5JKK.JTvNSd5FN'wQA\r\~9GG[[);v6Mb^Qq!l !!ݎ6A[[, &Nvn7f3Ud`rPXXAPF{B.P`۱o~Tdd2o~v !#-wQx| C"uu^;(w1`6ٟCN'fAfJ9.  9RϿdd2ȑz޿5 p8# rr N>͎b ֆӧOKvIfRヲu\5 "kllb=)>r6<>(1x ۋޯIP*Ӊ>ޏe(#0xW/d)~+))=x|P>Fa)5RV.rS|x|P>Faɿp3󆍤RV<>(#&sH[)߃J \.Am466k@@^^ #j0ct̜9jZ2&~LADxWс} 4@mZN<u>۶mGYY̜9C1xPT{~W_} rD˯_T*{w"ݎ_c?9r/^+ZVҲ<z[>ן26e9gΜuvv}s_HA7x;w{W^yfsL&CwwVŒ%K߼y G* w}gP4_YY_OU-9x7QWW͖>ZX-|w'Sx/lllˆ5i$6_ի?8$#Hz?/Q[[t˯ ߹sW_2ӦM ڦhGc#Ǽ;) .XaÆ].oرc჈ҍ#y4J. dGG4֖&i1|Q:GIGmτ [[[ 4ӛ&q,[|͚SiJJJW]񠤕͛L=AA 5_%%%())Wzš JAX峼_zj߹ t< ^/zIZSN~sA5ӧOp'))9s >)GPXXǖm)ZZZj|OQF$ϟ;q@ѣG k׮ʕObصk7@` þ'S\\A{]{9sAq6|Ŋ{o=fߏQ^^ŋZ0dQiw܅;w 6#\M>2Ìӱmv'lĂ1thUBimmƍ͘1=mĦ b4p=w%<N_,%$)]tхxqv qz\mIyfΜ2a3<$xp3xqnO8p"=i<7ܢkllI3 4io˗_kA@AA:nO 6TN|Wd"ш cɒKQVVF{,[C~yԩS? ?SNa޼0_A0xp v_fZyh4h4 }}}hjjo{T*nfTU%Vk"' zE>8*B PLP- |nmEH١COt瞑8ESDݿ8w K/Stː!CDz].-Zl)K*bi{C ; |yxIi"?~oJ%eee tW_e˖Je˖bŊ/\ع6m*>I)JJJp7]$JWQj[UgAg1x$|5gƌ:u {؄ΠAxl`ƌ1c:xR`Jiy(")N!Zh2#tC8jg `v˄}FaI5 I[)x|P>FP$b@#ov!o7H .IJъRV<>(#0x&RV:GAC$EEErb(**`}j5Zj4lRr***. o%{/JF\ "(G~~ŠQQQ.E+KHz%$q!1xZ"Pr6)\r6<>(1xrBTVVTtlrQ ^N',rr ƎÎd RTTch Z? q!0xHd lU|L8Ab=@(b䥔B`NÔ)0edYC "|Hբ a(鸐+Ct:O6]TVVbi:b^Gqq"BSq!WcǎAI 466Wd|T+XAAt:, NjFQ'ė Džl#m\4n0 |ϋvǖ>bw&Id"TTTd}}}lp8r%hZ(镩N; ; |yxDYm1x(jEggf3, t s yyy0(,,DIɠrnwtrrCL*T*j54-t:iAB6(`(j]ӳI$ADDDa """0xd

Lj N aQa`szs zSݝs)DDuT% џSoC;%sN71x8mn0vn QCݝCrמނԐ|5'^ӰޤK- X ܋:>n{"7nQC[:/ύ; B% Rx(K 딖y~'hp_C <1/N70xdp|`s9\ww|`F 6ADB;N7a0x' "r9Df4=-9DDۖqub[?tH#~g[B78Cvz3{aUkm-:R""ݝî쭶 E6u DDdíaȫntDD^p0xXáM ""n gT\aHyíADDDa """0xm<6A@hZX󭩊 %)b`k)ADơ"X-DÄW kӼ"y 8緧>\(-hZwщڄt߇b"/D9 D./ӧ3+mc='ΜŧF1gj-~d<^ݕCqُYQLG2[}y#7&X%هrDG]$%% xugo?uIy_ޙW~=pV;)WgDpI͘3-~)i!}<\X muqMhc?#R> .ߌ^OJ /Up~w Y܎HW>C0O [qhoR5fO ǟX <44{JWڂ6_>3BQ8\xB m~O!g7㌙M~7!"[0x\4\R=_4Ћ|e'5-9m퉅}P*ߨs 㮫:d_q-w|@qx_9[]rF|\j K;WoـźZz1*P+/i #}a gVo\xύa4lI>g֔rvu"v㈎ .9}^mOc(}"/P:VmJwwmQ?.:GN9{v،^Ƭ)۞ڢ5V_*OoIa,M~| O<\b~|7cሎ }tl&W(cޱ/``/5֪q婭 C"]{B_zZ-?=.?z(4w\ ګRnzhFpו3m,\sz+V>yoڏDz\fYqD륇BH s.ҹ3EDz=N_/&%s^iբ|1ك?GBx:Qu9X؇/}I?Li#MMq|Ut1=lR8Ex2쩇*N%&"gqȥz6OΉ^_Ԇoq>;sXNzw~0^ٙA̙• [=qW.u߆M/ƒ8=KW_@l(] >էTirpjoo/ vCP$Z2nvrT6A[(M^%"{1xD<+NWϸ/I5Z]ѳ"-?VW_2}kMM~\-b836$-{+.t^3k|Zf1NՄI 0}ơ"KW|mV)⚻ipŞt_?7oW !̖G[q6ucqahu ߆a"n^y`o3\,*E̞cU??T݄%0srZ"v[H"W/&4gfSG*[}y4z=3[p]}8{vj -/Q2Xq;%'4.;s1ُ"ֿo Cg5NOާa)I [@ޏeu|n˝~[M "qM(H((Eѭ$X oPXc8BDDDa """8<8Ӌ`xm<6 /ayía%"*~["DDp0xXD+DDEN i؋܈q{>v DDdǿ]];<z_t -d`ȵKXC,(X oR׺!5 7TQ%qr`ϞyDDD6aomR'pH(ykuʵm 6=Vo$X5! @fE8"rnQ$9G"""rL&dkkM:Yghb R,j1~v{J /_iDDDSihfO3]8Esx=GSHL*v@!h.O29''^_)/z:*s?&tM(tb)l8xf.Db9ׯNDDr-m2r_f ZMaej!!Q$|DDDJSތJox~pNRoj.P)Y0R}1CPdR7z,^?X@qɒ? ,|DDD5 ,Yq@*\_!W+`KjxZoIrK#Ν;￿ŋSTMDDd|iٲ/ݰrJJc(I/3<3,L֫/u2xkQ!j>};x?;a;;;~&^IBu4e>Z078tj߽1?J*:N J-`ZP2 ,J| TA>|k֬9yӮK/=-z\s嫒ECjHEnN P/X6M jetx)wsQ)TȂ|&cd2On҃Q(H !HP*dWnePa 70eٲegLxQna*g-ZԼ|f͚5+ }~& ![ @X,|>D"c֭[WX5kFaPNJ ^9-nŊi|Rm/Nj@yG@<@Mql1{rdQL Rע(^jZ0HCj{-*!DD.@ JTa "2Vr C^KQK0#thٮUΉ 5"@ 봆7j RWj rC-RޠT  > "֙1p6Ԣ^kH|X=2 9> !5CM|_CjJ<̥jfJKH-KuZY:`c> h]J@cкTLJ>a0֥Z0;h( ȭӳfv8}@k rH!7Cna!"2FO!^/.rC.^mJY8*(lf @gPZ'*8Wjz% DD)jr]|q:kˡ屘m462aCNKp>z5 DDҌO:p7T[ee.dV~@o׻Ti٦?""Q4e05<2սBn)\f~@GeF]jLն3E {orYQ}wmDDdZ{; Zky^ǸYa6kwHa "r#RJ53dxCȭhXnDDd #z{j "Z˭ӲH6$j  DDbtX!~ltZnwGf<6""r-E\;˭Ӳq^)FIX0̘Pg""CjCi6WR3cEjY׺eְ:Qj"h.8%"pZ@ u:dtPz߈Ia}^.jf~ȭ7z # ""/0RΧ07nz9^jm0#ٮw?""nfOe@Z W1Q#1#XM>U/EьWѨx߂ȭj)f3z1<:Pgά+F=g"zHjV|DzNDDV8ym{/"tN UFU=c"zf[sQ7u\8ծcW#""Uu:E͉^z?DDIf5BtەCyE+zZA>g/""ǬPס XHv GEM;>w["zaGhQ m$"r/s/,j86pTV ""+4|`cCDD`ؐ)aЀŴv3tEXtCreation TimeSaturday, 23 August, 2025 10:46:38 AM۩. IDATxwE7=+U& "`, E@PPQ{EXPT *`  R^\Ǚiry;Nyovv """"""""""""""""""""""""""""""""""""u 3QbpźɎb؆DD Ii*Ƕ""") $ 3 mCDD`񃝫'ECH-vDZHz@{?HDOsO:FE}D|ڶDDBD8wu hz@KY_ڋ>t~HQ}hs"D>K`/vI6%"o 7iGv|`#߈(ZDu'z%]IN-Z"'DD$^G)Dlb0GIH^߉(ZIJFB2uht <F4F#Dk$.%K@hO 7`Dz$.%Cgn ƾPQ|D4S&n%z(E}nW?rDD$FNup 5=ڣ!ᾇd0Q?.%bg꩕pGGB~"&+ Iw%:HrxoD%":!QF"uLt @(hH FbhJ""POcDj#rŅD >%l""hhMɾ/VTkJQtDJ8C'WGc"^;hr ##N[DHяx PZAݤ#" Ju4$6%/сH 7QDb/a9Z?+y-Uߘ/ JGG,ņ/H{jHяXw~P{e-6%QD wå0T( J\5"5Npߦ^!Ci!]vd%ʇMgmJEM,:hr;/_$PKa "R&4Kg F? % ;pBG8@ʨݶyJOmW(4tF : o$Dj# "ބQ[{[R? g$(2vrJ8{Or}mS+ Ȅ gG3hCQd)LzxVHnJ{r{p&rN.֡#6@ FKUj{ DDGF*b>o(c(yVN.9WPh#HQdEtK S'< S/1 :Py |x;ADYСdtBj}{~-K >N(!Dg Z;PC Rj ͉}M8qbvڵlOQUju#Q`q:Nn_QQkۧL_  VQ @ᎀ(yt_P"iFK8{_< C =P;SgF{kso ""vG|WM:v6|(BdF@=ﵷQCdP284T}nν`0 ԬX}]6@~Cyr?J;` С;8?1 "h]f[ՆDDGAB9#J) x%6qb@*|7n}jY@DDZnּyA=PͶ}͚5?~Qۙ+"һoo{gDb8\1>T6mO'"" y۶S:uum訩}8jr毬67gr0 'DcnS,.u!$w˖}V%"" 祗ʕ^]W>u8o͏P|x}vxMU dj{]nPmx0G9 !@~RuG0~VkymrcNJg "xj{;Vtm?ftA]]^C>Kj@bI=]6޸qQQ^DDD5jƍ2JM2E`0 ZK#}ߩ"м,71btZ^ 3jspS;!7Uj[ĄᑜTtnwPy)4IFc!|?""X_eff>S:ݖVw(\C\L2u%w D+VADDhL|Ŋ]}`S9j9iv zd:(_SSS81si-R^"xbBo=!D@|. DDZ˗/y}j $ɤ 6xDbDi23BCC#QܩTnJx%J``X^N+]4Ǐoh0G{ a0?۔ނ鋣"ZC ㎞Aԑ(mu}.ނ{FDx .&MrR""J*n}ۉNxSڿ tFI: te)44zJR""J6Z^z[%'{O(<"^Dt{08qb0>(nq*QPtG0#ZKZpߧO?mGDDSn}&h+XşP&(a$5dffDDDϭU0}m6K=DtcPg""TnRg?hjPTVU¨Qܪ㔞NQ*r"<Z:ECqa8` 󈈈݉>.GmP!h#.""d1Qf$Ouf&nJDDA1#362DDDqNߌ@X( GDDT(ݻoq.o/("+x DDDb<*ycdx0G4GNJ~5GM6cwqC"####?g϶;I]HOpucP\\몐]㳭[.1 c R(&N|#U!/]v I&HOOã>jQPUU]vϿDNcy\.<̞.l6`ժ᭷fa'ѵM){w܅r26 S/\}濰y_X;L65cĿ?ɓjgPQQw`OϢcǎ?O<~u2Yk֬c=!RZryx䑉x뭷}B?vرtR pc6mڌcoǖ-[x x㍷o%qc(L \.&Mz'tx۰a#Š,Á['ފKرc~}}_a޼aכ(1xmvmZg=Yfcժ5hٲ7nsja„q9NL4㴀@ *++1ac0L>|sA}m͚_|N!xϱr*E| l޼YQP\.L:.I̙o7csqkLxȏG `'>۶mSXVW]uz=xᅗ~ouL&f͚ɓ'y>{1h$aɒe=X`=Z ۶yf|G>wp}w}lXgtJ\.z,\1RRmv@jj*-[Dii)P{*yJˆ1d޽0w5(**7%%:zDJ73}}&,7 ToEEE{.ytzl7>\uۚ5k^zGq? RSSS"{zK'{믿Y2~#x̛-Z`ƌWԆu3&0STTc@ZnW^y 6kB{ #G{ݱ:yL8 +W${p4kvfΜ&A(kXc+jϿJԩ{,lֳ s3~czOO+.ߢE ZVk֬(+_~x㭺mv^.jjyʝ~?sР#-- m;ijb_|w-7ՅwZĠAxgWIQx'7S6͚ïٮVqbժttWѣ;7n#0֭yo޽1cn /Dw,Qc R ;; /;]vƣ\YY9.gP~'UC۷? yy~߫V`?vLh4g>cVV5o[Ϟ>zpIƍЮ][lݺMءjժe}''xTWWr{;g/Q}ɥD2.>`.N:$ޝRG8=_Y9>Q~G;Nw7*Nן %M-$wWB70TTTOhԀ PSA$ARYX,N(?bOKK 1--M=}_vx徛\]c)P{dffJ/3w9Z޺{1bĿ ֯ sG˅oy֦ͩ }/Uh]}Jz"Ȇ yc\]*:f4Z_x f?Qc յktWԮqET #G駋|ʶn'lٲU/*́wp϶[\5tbĈkѿ%㎻1u4|ua֭9p`5Oo>`y5km>w>]a7Zt:7nߕ.'ly!D Nk}/>gؖbD.g{l3~:aѷ9Z<̳Xp*+=ЩSGxސp`ƌ~?/±cPYY 6bѢEu`0y;Ν`ٲ}+wR {l;|g+L?<϶ŋ?GIDZӉwߝ+fDsOQFl{9x뭷=EEEyf ֯ N{ҥ_cw=j1bpw`ݻwN'0g{6Ux}u|Fqۏ{7 ͆*,_-wϽ\q%rgu&rs}/ ~7+a(++ƍbܸ2b}UUU{4O<16l\C9D^5k!Cc">S v7wD׮]pWx{t:1g{ѤIh8p nyϩ^M˖}޽PQQV,l ^:Pv)i= |7Cd2!%% 6@pеkT*Z\r,]5~u=݋ h4jMSq=0`@'0d ,^6l؀b 4o\r1bhu2Q1o\t2ٳEEEHIIA6bA4 Ho*rU ݞg3VZŹxl[x!ߨ IDAT6m:Qbu׮_Yr{v@b3^1( ?JQPPqS@}2QKL"8g^̙36mFAu&<3cNL-={^DɈZBd2pUxas~N=54i͆#G]h4SNXkJTr( 6l}=z^~yKI="0u֙3mvZ;ԩ#fz%xEȆ rO-8rH}rr> >XWPx0x%d (;wIK5YNVxg߳oVͷm+Sط7/Gw?Eםg6gx-G0̀}KnCu&Nji=`r|c`wg }sa۾#jQ H{#Oq CcQ֝SsGǎ&i`۶e< mSfybT6;F~еk+q(YO%0_eWĤۖ86l$ޜ d[Klz@̷P4BG}fݸ .& 8e^ / "q @Q:L@ /䖻b_pM?pʑxUlXW'VT2}V@՛qlԬ5u0x$Ɍ[Bb]D,*uU6NT=]ۦͱMBpC#9翈b߷݌ĺ*"^N@\f o _^IMaqg mМ jpUU~O:m_(y?~꼼 lg߷e'J°ڍn|Fuj*\6[dN8(j ;w!I`84AVt;j~V5UR Bڨ!MVm0-Hl$rxȇ9eU&Z7n<6ghOkimmLRS-pYm!w}.?64b3_$RQ:?RYaî@BӨav򵙨cEܮȟ.A5ir:&F|.@(zMPCk!ПsV 9+PJT!7ԑ {S!7$KHfԞr299Ț8| mOUQx"`&/ Q8`pPCg'Yβrܨ|CoG}'&@VUge"e` _W!G!bsuBP>=d]ΉJ]tg_,D**oZئQp7܂ OU]} C_"upcD¾g CoBƃA軜sⳊO/Vx#Ӧ; qY^Rt3u0~ꌌIe4"gHme? QS0ئٗ86`0jVVUZ*~yޅ椦Q_j~Y'_PFcoM^ԫDeC4.O20xıg_@\ڨȞU>;o-窮F'I irqֻQ#pVT(~nhHndI!TN{MJGΌ>v64iO?wOٲ?!1xĩ_pl9~z托|hRR\͚_`Z:IփmTKAŃ`YRSț?E~WXi4ȝ_\:PT]z=qcWvl9˕w9 i7^Q/-Pzdun&MV'%]Vޙ+><8c^9G%:uDژ 䄔+гdW s_mPx.]f3,~cW GZ`Fd>(hh>=GLćr܌*-My'8ONTzGXrygB6 uo({CO>ˣR`9 }ox`YdmHb:C#$˸LfX~IXH9_G,?}~2ƁmֲWd8+`Z:Mtlp튊W<5%a dN|̃e#X WUdv|,K# 2}@Lƽw K2Jn/=#m:`ߵ[qyB9Ѣ?Q[n2^ȍvҐ: a QC,Ya!hp: em>=C!eeel۶úϨׅmۦ':Q |t͇Q?^[ = KmȆNC0xݰm#u AC$;Qm>}%?p^?O![d!PgeBӸCb%<o<eˤem Lcnli"{ݝ1bX  É6n@rRs$GY?V-@u^gv,#7-l~IE?Wgf"{ꔈY&=/*HﬨVR#\&3,(۾sGoQ,iT  ?ce4NBG%\\woR) w#xc eh2&D/oFQ2fM#ۦMOK0m6О=hRNK_NTK *NXUHm+Pe20a/t;@-y?2dPD6|BFˎ3fBܭΔA7r P )cܯzTߦ=Tj5 =.eXʂlSH/8U(!x%lo/70:I_`۹.-dFM}>f' )Cj۷Vh]}箈m6%W 8KJ$h[4VR#l[˖ѝmܒl"٦DJ*p]#JIIɁQC2UH)QUrqcjC 1ط_r}ܩǾ;H)Q|~y7#7pt$YIJ{KC0ئEMa+߹uoH<5pz4r qlSxT*Ƌ )CBrM#v'H)Q; / UZZO0xĈl:I:IuFeNJ>S$ڔ(UN)Tz#Շ#cd ' % $٦<(Yg_Ju #Fe紀NRA{D3ئD @O.d;nV% G8enM L!u6UZ%갏66%'͔%Ya_X(x 1⪒TwL4Rw m)mJ/o@볤 TȜ4AT(D 12)$e:D"Z H)QE󓲞 EGHptɝHI lSOhS"QGweȖ͸^5TH(y9HZ0xĘ$PpxUz~ i۔H Ʉ1*EoT׍G點#U] 'lwȮ6V(u`@ƃ"^/? 1?l@-`I5V˖wM#ߦDRE(~n/R! ȸU8cL;w,S|g9-4m OPg {]79p,Jq vk~xQbqл' ߶u4n,^pVVºw2Flȱރ]@͚_P}c:OCP5NB'=Qa#K.q#2Ͽm[|q?H*5W_%Nl{Έx=(}e&NlYm_8SNR7JL qD!1҅T<*⹩laubN߹#t+*לG;_G3)ZI4ABCgF Dj ꤄`^\JCXlTȞT|YY<ۚ')/센ރ://gT)aP8R Nr({llG!it;"P,j30z@N'&>(*n8>uVfԫFɁ#^7ZsΊ uot,<&YLm:C pWHv$EJOG`gHʨ׃p8P#0}>=;wTQ%89Qr lBH/)cj@%NMãiY<85qssdU| /NRc.*}AJG۔ȓ݄**vhd,Dn+i6@)V6J=hU8(TLxcC׮mt)ѿ%%(ylTT>[5qvQXs|׋G|AVTV|*^WUUD2[P9 t)ӑiXaR}fwEW_ U*dM~ w&jT(/ T{J6۳Cs&jSv2AL&M)~:; #FڨМ,c: ´ST΢bӜ ?Qà)۔t!6j8__%wn\80\r8PYr{v@b3^#8+P9?Ϙ1pYo^8gjDW_,稪¾}Fq;L4MD(F  َ?G#];dnݐڹ3Fcɹr}6*׮_z+*4=BJEW `/+C…S| /\X#'ݻ#oph23Q~= yc"7DeA߬Y-FD(5}!XvDxl7o8PtH Y}"{@h<5Q#jjp>g^Gҥ<豭K/!yÇc 7_u g:>U }2{F3NwԎʸV.YFnۈ()QR9hr}df-P8ү y "l:P;=Y Hޚ3# ޭǶ~D/<JE[o?Ӧyse&L}<\!ϼ}̞=K;hsH},-O!1K}e82}:luʖ-CH 4aٶ "ZSIN nse(=c-}=ܟFjpxbԸ-  oUr ܉C"wȐ ѣ`@W!#@vgmjgL*ն6u/$ iF8Mޗs8<˅T_~&#qX2Y2&q χyVj2nD`la,Tpp>zܞ&z8u\qjn'?JfO>pҦm"kjh3o'${cƠ/˖Sth>u*4f4f"S-D *CcT^UP^^^MN -Z {wd yeIFh(|T%%PПtFJh(_Kf^؏:5ƍޭr U+в%~)*V ڱ#Vv%jj!TiS_"u"Z>#kuxa """abዎG,}.-ãF xGu CZ) ox hYqݧiem)8SǪl} G]E-3buDShʪ,>\i؄NxTd{@F˲tHݧ0<հ 2:z4HeUFGv魩m bؽPFǎ1`qk[huiN2U{na鯭I'2;دt`F2)j\h+ k}#)_ӜyjƉKNej[O.U|n̞y晗=KkۭZ{;oVb fE ,brC.O?W{~.go_0ziªhDj)~Nvg.Mګ #ִyCYi%]/^}SL*u:t8PDnK'I6K'(v|:NiBiԉRWX3sEypꫯPݪm7_6̬u9uZt=9y`{{|joox˴1v;s:R6Zݺ/) cQ~5./"^Dv=5lִ&f̝xؾ-=T/"k"o=_3PW}|:IJ0=,̷!9$ZC*bbR>}O666+9֟ki^eݺ>En%d&p%t2#Yp$yimml"vE@f Rۡ{[VZ#8[W奾i ;ӧL[>$ӧO=/9S,R^[ltODd{%WNzD߿rT&I&o9󃳗.]JVvL.9WRfzfv&"K=s Iy_|ϔɤy9j13x]: 9j=#<¶?板 *y!wls>ttMiP+"{"2ܼky|j{;OlnTZС05t]+bٟwŞ\׶inZQ٧8qstoo/}ܹ=q?uO%5[g%ҨL\f[60 _">w?7,!I+N$'^tD4#ohGݦ[7}fBZ8uǩ 00_6 u=}^MgE.VP_cj15!x@Xeh‡iE\K,yC*(re‡hBn[!t:L6Ԓ݄aSu8| ]#-d:"WwнfnNO]z睇aQaqXFʼuЋ뫮 "a53!|@!Y\_m!D4VL|Vu =C,E%&aa:^w6(Ƨv;j7 ծIޫ뾼eݺ*zzϰM*tA "ym۞nP[#n*>F6t9\U"C/6m.5}6+Z<]Cxp*t9L\ESw!D{L\u Q4}r^$/ 27jJ aZvmm >aSD2T۵0u9Tbw?,B6}xv;mBz֦/FȲm:h"]unBؐ!u]2ö^4hQ;q(D\M\bP (R!RtXLP׋Z49x~X97@3"s=X7msW"$bJ}3|超ymM/Ћn[cl]jE-1yếVMm_ m>CZZc %ߦ#S"\u)r1a^EkE t!rdؕ6&>}TõޯC:RAхk $DJQ qjFٕ4U"b:tHNJ]Dѥ ][ث$5Z 0b^ˮ Cw/::-V75.+Zcu.::EYv]@,U*DB,@QKk &?H6ɡpMBONmE)>\/PaӡCv `sZ4܋zm+ 88IPpQP9 q=1,|Кqme64(V< X%P4uv TGϳIENDB`SeaDve-Kooha-12ed227/data/screenshots/screenshot3.png000066400000000000000000000507501505224011700224730ustar00rootroot00000000000000PNG  IHDR0eb sBIT|dtEXtSoftwaregnome-screenshot>3tEXtCreation TimeSaturday, 23 August, 2025 10:46:22 AMt IDATxwSU7e*  2RD* "*ZUt׮XXV.*]];6@P a)L$?SnzM2|?ϓ'ɹޜw缜s mؒ݀=3O!Ə,8iF  $tA1@`BH:==MO6@*I=h=S +@ьӾCәt:=D'Q=# 9DwY z~|/;=MV}wŪN;ω].4Nͬ")Fs>Mb;Y줣9v$u}М:D\$:RfFcHIJj.b"B2Ig"xFGIRRs fl 5$bŒmIY)3Jl[n=x>+s'kѐxD.їF-$));XV f?i̾sh4A!^ҭSK(YX_hQHtb8=33p$24.`">޲X4FF8}<ܶ_#с#S2$"ٖt%bjŖmWv95Xkcۓ"U;>3G9 #ʢ0G,!ُ~bO%pD-TymYCl%h:,mK/сDp77!'72 f}&Mt|fr$*dD::n`uI0 FGBb j#ٝ٣oQۂE-Rɒ4QO"iYk4M̎+Q2vHaBGp`,֎4{eD2 AZuH&Ѯ0 a8 p8 2t\:Ik4m؈&Dޟ-Pu^eF.#EDә)WlJE^Ah$$GA$k, VulXG9B=6 Gϡ)$FjQHs`48oPph==b t@bEҙF:?Zjşo|c=[jٿL~* }7;d`e` F%<$V)TbZ101H#9`>#p$և6at< 1ld#I<yNKR‡YY#Q{y+G+` +:"5]4߇:~4ϡ^;hG͌N.#Q{*x4q|"AĈ YpyAF?x5cX> ʌE_lraxB :Wp Lݒ%5< nN,!$knZ;XC" 2F9~̆ Gc[L0޽{/t:3mv{lqmQId)xBQ<B]Ə骫ұccN=Zm[ѼzI&5GM((H/F%$|X< r$ۜ9s~gfee;IMMͬŋ5|%^# $яT)qiI.YYYڵyki_ب>FSH_9|$" 5ᆄ# s%e6eee$B .4lذ 0΍O3GQk8G2btϏX|6z鶠v-GðU${ee$94sT.ܜ ᡪ!YAQ9k1XxD31歂kg۷#tR}{ɸ~,J-=uWf..K ƿ,YҥKO*((8 ! _tI}YJ-2UJ`0ZK=b4b.fɒu7w<A )}GVUU}p1:>h:$G&'rQik;/|8XZHrM9- {CukZ,2j%w" D2%g͚5HW9͚5kwmo6#L7Pu8F;Us@:s\rsskh7aP^굿xDbbYbt?!' tҝ}FWb҄D<1B4K:2!QO|1Чټ.%gthp'ӆ*wEk$7!++k%F| .M_l G%aZ?!vWnv_})ap3zԹ^ܡЬxm 7/ D΂]?X:thKyСC[zݷ*ThH,<^G!6a„8)z*< f5(\2ׇ6$۷I 8GъH`1z(׌XD`a$$FTRWgt?hHʢ5gKgdd흄6`>5`jvl|F͒xĚ~vcm e5qND*r1#n+e4VwѦ+).\ёH)a|qI"ߚω^M_(H[S-xf,#{0dF<e f$*FN{Wq.{D\4<~1I`:bP<@KV66I%/LJiV L VDbn\` X&Ճ;NJ<@3B!x<e2`L2GJ_g @3>` X,C!x<e2` X,C!x<e2` X,C!x<e2` X,C!x<e2` X,C!x<e2` X *UUU*..Nv3,'3`=>Du.bm޼9M2ݞx΀lq/E0*{={?^ޯ%jkFq0ɸq76mZ]v::޽%mDnCs)_o֙g~֬ٚ8.:zz i=񜑺233IH*T/x={?,ԳW񫮮֖-[eV}2M:M'pƏIyyyn ڀ))mʞx΀٘jAٺ‹cd7 8,$-V0)h&LCn 8@WuY-[ '[oke=1ӝ}5|uڱD/' }>dN>$=JGJv3,'3`&L^uAO:DgꫯSUU϶3?$x@3D@R>׿^)_bnvmZx~W(77Gm۶Sj!;;[͖$mܸI,9ܹ ;V>JZ-ߟ˗Lyy-3OG%IҿhŊ>M>U'Hs  *//WAAOь/rl+/Pyy֯_@=tիWϐ_YY{@gBZvy=O~u ~ /S.`{QQ_jʔgu]wjE[^W^yv**uԩӤI>(_l-[Yf'Ejgsu]WmmmӶ:i5z7_~AUZZiѢ>K ,Ԃ 5jiH9 KtNqx|/w\ 2幀adڟue 褼K.3 F~. \p_z~zacN] z#Fs_x4q߷.<gG^V;ۧcNx_}vUUպC{_/JGhH~XPt:S_־vWNAjktmwh˖nMx`SUYYg՗_Ώxn[?,v |0Ѽy_DtO>e˖ET7G&=BMUkg =ēCcڴڲeK-_hjARmV_w@y^=p>ubʀ:N]}:3)IڴijɒoUVVgꮻ&/kٲ}I'j؋յkڵK|N}^`lV7 ʖ-[_~5xx_G_wkmܸQ?Nn~Wa*gthԶm_A3fZ!?3^+WT߾}uuWvk4#7}>æM;7''Ge:trrlrM6l%`=g"xt6mҦMչsN}Ro,`N^)uYguU?tٳIRÔkNo|I}6mtEcԪU>u?tOxWw'xT999RCX1x}>)yСCZB]w:sw&Mz@&LԼyxtE'?ӱ>LYY[|VWWk͚5>WB̀6M&=s!CQ~/նmQxh0ݛo7|+ݻw~߄Z-XS*N:w^Zꇰ= mサt»wnzx6ؠ6X=?F9K29h uŧtG8m=%c~"lԾ}ۍ~{!#{0{`(++ Գ~A٪UڷoCK's3RfӃoYTWv:8[ȍFmlѢE}mwn`r^µ5}!WTT L7nu:,Y򍮽vOǣO?OVVf@YϞ{U;;*臭Fw^VT6athv}µ<4ShH,7p 8W5UFFO"~}ow:2бcǀbUVV6]IhB^^˸GڴiPf#\[RE~~l6[z[K q\ھĢS-H2``֭z-,, #+W / UU~}V!$n=wF+F&=~3,,t/F?A6|y#յk׀ pM6駟fPNʍti |$E>5|qӧ l pOYUUͺMp?A7Fzuk窯OL6<޻ᆵ۷\~T[z4,y=4)I~Q@ zN:昣ʶl٪W^y-vGO8zvkڴ|oнޯo_|9x<{[t3AmۊnҳN ցD!x ieee׿^{=tMO(++~,Fn[̙֭ii>t:uO57vDӧK?h@ݓN:0a/qZ;թB|򩮻ri׮F<)ȷC9Xm^SG?]vit 7뫯ʤN:!B^;蒒K~-4͛u%gjSxoاuֆw;MGq> -]Oڵ?k?uVVqqnw=Kҽ}n>klxjw-oǰog͚pҥVo`@R]z4Ք)7Z 8 riƍZna8唑:?v}]A z pС76 :Z xXu2䘈u` >,am;#`zѯRQQQSи⊿-L`o7EhHM6:)O>TkS{X]65\oZS>9|z#s=^znw:z{uUW,5Ҷm=#:`ͦ{[zJzx@祪Ν;'1cη]f6lh]>չs瀺:کgM IDAT01N:11Ղ3|>vOkuecui?Ғ%h *++TVw}uO {)5{[\p>-]6oޢJC:t kaoetEc4r䉚9#-ZDׯWYYڴi=1O$222tiS[oUIeee[n9qAw聯^?R3g~u֫D999s?uN8aDFGz[C]wMԩӵcz!?o6jjѢ99DúݺuӃޯ'|Z[lQ߾k q$R迠"x~ٽglu  qFzC{8ŽA /T/x={?,ԳW$?=^qq̙>EEE>? G^ 9gkݺ>}~~An XGwW rL_`ZJu>05?WΝ;N[n5=|vv^xago [ $Vsj!xH ~T_jkk/33C=4Rl 4#p!kԧO߿}BBvv\+V֭[~ߧuVj׮= t=d7H2A 4T X,C!x<e2` X,C!x<e2` X,C!x<e2` X,C!x<en䫭?}|͟@qo:먣먣CQfff _naTfz~8_K-H˯檪ʔI'zה$y$Inx~{x QYAއ+oB@/YE]sa\NRXII~1}ܤcjܸkթSH'r<|?zgUYYHt%E:w q9H1UUպ{4wd7РAG讻On ҚK@3VTM):$iEӟ.՚5k`h6oޢ/R%%;733SvzQnԺu+*77Wn[UԎ%ڰmذQ˗/ײer̼zԧOeă4C;v_r6o>CÆ 'a>RK|w}__Hn;}4ycիWL 4grdvڈgddWDT3L͕F%xhFf͚Ql첱zGMԫW/M;/_B'?czX4۷o׃>Խޭ.+-A9]"W_}M+VmC)S[+/׉'`IB=zƌ l^%m`  L:]!|A3|_}[oڴ5@۱c>Ӑu2335q℔Mөo5lV^ٲv0W>G.]X֦H [O#H ͙YN32v%aDz_;vsGc)ZݻwSޡom[onYe˖f6le[g,i s<4f͏!; <زꠃj*K\ Y&nQ^^K={e֭y@ЗZ֖xd5ڲwe@۵kW=zkY[╗r{H M׫:d|-CO WX!xi"|GܢE Kڒx8裐u[&!xH3? {OaY{ iJKKυSN9ٲ60@<ڵ4d:CsV<$ū>8d<]tх ,7kl=Sa]{jժ6w.`W_}]?dv :DFjYXzGǟ۽{wqKZx<={}qر3l[O>ZZ>"x0g3nkzԮ][ 9N˖-s4{ga[t=Whf bn[ժݕ***[i&-_B+WTmm]TǴ \*  {ッ音~q:CL,rݺuӟ\yL /QiiiD{n!ۯ'ܹ4yڴisD[h3{w5m@#x<$Zbv*++#gĈ5fݻ)mrZhMޜNx^}Q H7rdK~qnRuuuTW>JRvmngs{(}322twkȐwgr,[UUU=4`a*,nݺi}VAA˥"FmܸI+W_333t}Ǵ?\< @u ڸqcŽeddZUUU +jt=t .KrZc_M\BHTWW_Uqq: :B/04sx͜ogyVeeenN-Zsϖ$`\F<TO?=EADw 5ni+Zn)a\NR܏?W^yMgIʯfddՅ~Z@"x<4sN;zTRRbuAgqF> rf<V^ jZrUBb<y:#ԧOopq x<4{n:[^֭sNUVVr*+TSS,h\}޽uݻrss}:@A0.'x`< X,C!x<e2` X,C!x<e2` X,C!x<e2` X,C!x<e2` X,C!x<e2` X,C!x<e2` X,C!x<e2` X,C!x<e2` X,C!x<e2` X,C!x<e2` X,C!x<e2` Xƙ7ZWVS]%wM<.vK$ifl.){Vl9rʖ솁|ee/-*Mf#婭W}mT^.${vr'{4GWTȵc<5n UrWWrm+G˖nuŪ/ݕfS[[.hݜ=BKu[2)t<55Y6'ݡU"K7: Tyo a Ene=ߦ^&{ ꊋ殮R]qqG xKw"h&sؑ&"ln͵s\;wjm='nU6mVS-@=]{aי39_h$HMb͞Νes8n٢uW^)wu"xIPO#GVwU%KwdeSfz?-`&OΧl}l=V-;L?]t׬iVkxeekL^TkjlZٽz)09tsr_SσH۞~Z_}lJ9v\ }*Z;~[U?дpپrWQw1ae˴7U7+*<9۵SAi)Ȑ|b*3ǧ,o͑]u\seb2WI6ŋQ}oWW_xu{8䐐m\trJJT*suru:];vh7v&nڤ]~Gn&.\2iJ^z)7vߎq] ʿZzS QGeesUeKT|֎&{v϶ ƩtXXkǎ~"G˖aH`1IgeGp`ĈK^|'t22aXu99rWVJwVԩz]AYgRÈLq]S]~}ƌ;BGQG`ߎ=gʿi[?xTu꫾fS۳V#dO=ߎv}T]#9H.`};۷-##N^uTnڍ֣F5mWee*zɦo {vcƨm +T`ASoVLaO?=7o{9|*y啦:]}dIn=1~ڝw^ .gw:]{|kF, ֑9}6]Ӻ+P݁;lE{exik…I1?)#{w;|80e칹*SKGFǎҊMk7o| ~M`1GV?8ΞTV6ov,r=q C[nԴ͞>"gc,wKqpL}EE5ȑM={*W/=,ٲ~>u+W ; [-@ttMw߭ڍ/tU颋Tز1MWs8z<~.FZz{we>P@m'ڽtv=L%-8Bζm֗xԀcxjk3zhm?^S1|4 TH^}wvr5^˚gzT j%rkkUS֬hiu >f!ͦyT>;ܦ`s8⋵+=j~YN:IVTaBU4?ysq]MڱC۞zJݺ)0Få~.O4m#IDATU)Y}}id@2[rٲ//onٰ!L׿M˗ܽb"U,ZdX?OuR\\י3̙?wD9~?)ڞ}vcsrܭU l?lv}UՊ+.咣@Y죖G6gݲW}_3fl޼EÇ6bBpmiTp~}UZm䮫SFoLuN=;XDuŪ/+#?_Ysl{r

@SS#g۶>7=` [uB/E0*{={?^ޯ%jkFqަqM*gd7Gff IIe%_gBzVʛ0,CIfH=@ 3,C!x& f!xW i5 鋿!xĞA-@*oy&e$ 7<<^? Hi7Acr .1To6-$"xDrݥnfH>.>ʩOױCLng[m e5qVѧZ6JkhsbZj-C ;aeR?X$'Τ ..Ww'<.+RFX`S97hI $]7o?r)v{02.WwW]uwyaj*1x#ZxZퟨ2r w#WRưaZΜߘv)|ܹs+7oGI_=pk>G{xiXa/)y}~~q;1+++]6yMTH<,,b#9pk>VKp$UKo׮#?j"$A?خ]Gj߇EpՊ2NfP6 mITwX?{8rc #G묆urG5"&555/^WoXQc* Ű4i JY<>BbwꪫtXFAp\m+SO}1iҤbA6:"Dp ^NGC†gQ AQYGRB<>& @䷭Uip\vza#N3\'7>\^P#DHGŬ.C!ԋQA5_f>9CĊ4?Ih|,x huhCvnGn0R{PE" 6T݄9'-fE.*|c0{)tWB_##‡Rz/5^kcБ& !4)\Zj@:I~R#zK24ȭ Qz#׺kKSD5,I`i}02*isa#M,rY^.HR kjcE !wШmHca sQ5@z453ko!@Kv;K[.|5jjKǹYQؼ^1lJ _x tz h{,>Fm,Y#]qnZH Zwl$c4BpjQo!@YoԆdpb =]iL3fu!~[)]4Z*EZkZІ7rڥpyu?!`H5[5j=dښ/E1Vk!v*~ݏbv;1}9]2;G\;J@>^zT:3dk ޠa=,=ka4h1V_@EO !gݖ q\K<>c˵)=z84s˝R{Zĉ 1QomR:5R:v-V{g8)pgE 1K"tC S6H(|ˉ4Zgsl{g]O,=y n5]_nG0[̡-ϻ2tK_Dw5nXcxG[ǟzt4Fv5R=GБ.+v^q:ͬ}F ~FZ9@l݋+BGEu#z55#]\g9묵3( qUH]^P Ero}a$E>SJW `Bq!."\8>-fgxp Dx>p|(20Q@qc5 8B@ќu3*Ñ1IENDB`SeaDve-Kooha-12ed227/meson.build000066400000000000000000000035241505224011700164130ustar00rootroot00000000000000project( 'kooha', 'rust', version: '2.3.1', license: 'GPL-3.0-or-later', meson_version: '>= 0.59', ) i18n = import('i18n') gnome = import('gnome') base_id = 'io.github.seadve.Kooha' dependency('glib-2.0', version: '>= 2.80') dependency('gio-2.0', version: '>= 2.80') dependency('gtk4', version: '>= 4.15.3') dependency('libadwaita-1', version: '>= 1.6') dependency('gstreamer-1.0', version: '>= 1.24') dependency('gstreamer-plugins-base-1.0', version: '>= 1.24') glib_compile_resources = find_program('glib-compile-resources', required: true) glib_compile_schemas = find_program('glib-compile-schemas', required: true) desktop_file_validate = find_program('desktop-file-validate', required: false) appstreamcli = find_program('appstreamcli', required: false) cargo = find_program('cargo', required: true) version = meson.project_version() prefix = get_option('prefix') bindir = prefix / get_option('bindir') localedir = prefix / get_option('localedir') datadir = prefix / get_option('datadir') pkgdatadir = datadir / meson.project_name() iconsdir = datadir / 'icons' podir = meson.project_source_root() / 'po' gettext_package = meson.project_name() if get_option('profile') == 'development' profile = 'Devel' vcs_tag = run_command('git', 'rev-parse', '--short', 'HEAD').stdout().strip() if vcs_tag == '' version_suffix = '-devel' else version_suffix = '-@0@'.format(vcs_tag) endif application_id = '@0@.@1@'.format(base_id, profile) else profile = '' version_suffix = '' application_id = base_id endif meson.add_dist_script( 'build-aux/dist-vendor.sh', meson.project_build_root() / 'meson-dist' / meson.project_name() + '-' + version, meson.project_source_root() ) subdir('data') subdir('po') subdir('src') gnome.post_install( gtk_update_icon_cache: true, glib_compile_schemas: true, update_desktop_database: true, ) SeaDve-Kooha-12ed227/meson_options.txt000066400000000000000000000003001505224011700176730ustar00rootroot00000000000000option( 'profile', type: 'combo', choices: [ 'default', 'development' ], value: 'default', description: 'The build profile for Kooha. One of "default" or "development".' ) SeaDve-Kooha-12ed227/po/000077500000000000000000000000001505224011700146635ustar00rootroot00000000000000SeaDve-Kooha-12ed227/po/LINGUAS000066400000000000000000000002451505224011700157110ustar00rootroot00000000000000ar cs de es eo eu fa fi fil fr_FR he id it ja ko nb_NO nl pl pt pt_BR ru sk sr sr@latin sv tr uk zh_Hans hi gl oc hr hu da ne zh_Hant et ta bg el ca bqi si ro ga ia SeaDve-Kooha-12ed227/po/POTFILES.in000066400000000000000000000006371505224011700164460ustar00rootroot00000000000000data/io.github.seadve.Kooha.desktop.in.in data/io.github.seadve.Kooha.gschema.xml.in data/io.github.seadve.Kooha.metainfo.xml.in.in data/resources/ui/area_selector.ui data/resources/ui/preferences_dialog.ui data/resources/ui/shortcuts.ui data/resources/ui/window.ui src/about.rs src/application.rs src/device.rs src/format.rs src/main.rs src/preferences_dialog.rs src/recording.rs src/settings.rs src/window/mod.rs SeaDve-Kooha-12ed227/po/ar.po000066400000000000000000000562421505224011700156360ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Ali Galal , 2021. # احمد النهاري , 2021. # Mehdi Essalehi , 2021. # Muhammad Yasser , 2021. # Ali Aljishi , 2023. # Yassin Amr , 2025. # Ahmed Najmawi , 2025. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2025-07-27 16:13+0000\n" "Last-Translator: Ahmed Najmawi \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "X-Generator: Weblate 5.13-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "كوها" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "سجِّل شاشتك بيُسر" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "تسجيل الشاشة;مسجل;شاشة;فيديو ;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "التقط شاشتك بطريقة سهلة بديهية بلا حيرة." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "كوها هو مسجِّل شاشة يسير له واجهة سهلة، فما عليك إلا نقر زرِّ التسجيل دون أن " "تضبط إعدادات كثيرةً." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "تشمل الميزات الرئيسة لكوها التالي:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ تسجيل الميكروفون وصوت سطح المكتب أو كليهما آنًا" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 دعم نُسُق وِب‌إم وإم‌بي٤ وجِف ومتروسكا" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ اختر شاشة أو جزء من الشاشة للتسجيل" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "🛠️ لك تغيير موضع الحفظ ورؤية المؤشِّر ومعدَّل الإطارات والتأخير" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 ترميز تجريبيٌّ مسرَّع بمساعدة العتاد" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "اعدادات تسجيل وزِر لبداية التسجيل" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "مدة التسجيل الجاري و زر لايقاف التسجيل" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "عد تنازلي لبدء التسجيل وزِر لِإلغاء التسجيل" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "حدِّد مساحة" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "ألغِ" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "تمَّ" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "أعِد التحديد" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "عام" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "التأخير (بالثواني)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "فاصل زمني قبل بدء التسجيل" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "مجلَّد التسجيلات" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "مجلد التسجيلات" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "مقطع" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "التنسيق" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "معدَّل الإطارات" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "افتح القائمة" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "أظهر التفضيلات" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "أظهر الاختصارات" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "اخرُج" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "يسجَّل" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "ابدأ\\أوقف التسجيل" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "ألبث\\أكمل" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "ألغِ التسجيل" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "الإعدادات" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "بدِّل صوت سطح المكتب" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "بدِّل الميكروفون" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "بدِّل المؤشِّر" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "القائمة الرئيسة" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "التقط شاشةً أو نافذةً" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "التقط موضعًا من الشاشة" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "مكِّن صوت سطح المكتب" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "عطِّل صوت سطح المكتب" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "بدِّل الميكروفون" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "عطِّل الميكروفون" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "أظهر المؤشِّر" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "أخفِ المؤشِّر" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "ابدأ التسجيل" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "سجِّل" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "انسَ ما حُدِّد من مصادر مقاطع" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "أوقف التسجيل" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "توقَّف" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "ألبث التسجيل" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "يبدأ التسجيل خلال …" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "ألغِ التسجيل" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "يفرَّغ…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "ال_تفضيلات" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "ا_ختصارات لوحة المفاتيح" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_عن كوها" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "علي الجشي، عمرو ياسين، أحمد النجماوي" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "تبرَّع (اشترِ لي كوب قهوة)" #: src/about.rs:48 msgid "GitHub" msgstr "جت‌هب" #: src/about.rs:50 msgid "Translate" msgstr "ترجم" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "سُجِّلت الشاشة" #: src/application.rs:144 msgid "Show in Files" msgstr "أظهره في الملفَّات" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "فشل ايجاد جهاز الصوت الافتراضي" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "تأكَّد من تثبيتك بُلس‌أوديو في جهازك." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "صفر" msgstr[1] "ساعة" msgstr[2] "ساعتان" msgstr[3] "ساعات" msgstr[4] "ساعات" msgstr[5] "ساعات" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "صفر" msgstr[1] "دقيقة" msgstr[2] "دقيقتان" msgstr[3] "دقائق" msgstr[4] "دقائق" msgstr[5] "دقائق" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "صفر" msgstr[1] "ثانية" msgstr[2] "ثانيتان" msgstr[3] "ثوانٍ" msgstr[4] "ثوانٍ" msgstr[5] "ثوانٍ" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "فشل تحديد مجلد التسجيلات" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "معدل الاطارات هذا قد يسبب مشاكل اداء على النسق المختار." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "هذا التنسيق تجريبيٌّ وليس مدعومًا." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "لا شيء" #: src/recording.rs:42 msgid "No active profile" msgstr "لا يوجد ملفٌّ تعريف فعَّال" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "فشل بدء التسجيل" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "طالع {link} تجد المساعدة." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "إحدى إضافات جي‌ستريم قد لا تكون مثبَّتةً." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "تأكَّد من وجود موضع الحفظ وإمكانية الوصول إليه." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "حصل خطأ أثناء التسجيل" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "فشل فتح «{path}» للكتابة فيه" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "اختر مجلَّد حفظ التسجيلات" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "فشل الإيقاف" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "هناك تسجيل جاري. الخروج حالا قد يجعل التسجيل غير قابل للتشغيل. من فضلك اقف " "التسجيل قبل الخروج." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "الخروج سيلغي المعالجة وقد يجعل التسجيل غير قابل للتشغيل." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "الخروج من التطبيق؟" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "انسخ للحافظة" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "نُسخ للحافظة" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "أظهر تفاصيل الخطأ" #: src/window/mod.rs:289 msgid "Help" msgstr "مساعدة" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "حسنًا" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "أأفتح التفضيلات؟" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "التنسيق المحدَّد قد لا يكون متاحًا. افتح التفضيلات واختر تنسيقًا لتستأنف التسجيل." #: src/window/mod.rs:308 msgid "Later" msgstr "لاحقًا" #: src/window/mod.rs:310 msgid "Open" msgstr "افتح" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "هناك تسجيل جارٍ" #: src/window/mod.rs:509 msgid "Paused" msgstr "مُلبث" #: src/window/mod.rs:546 msgid "Normal" msgstr "عادي" #: src/window/mod.rs:547 msgid "Selection" msgstr "المحدَّد" #~ msgid "Failed to start device monitor" #~ msgstr "فشل بدء مرقاب الجهاز" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "فشل الاتصال بالبرنامج الخفيِّ لبُلس‌أوديو" #~ msgid "No microphone source found" #~ msgstr "لم يعثر على مصدر ميكروفون" #~ msgid "No desktop speaker source found" #~ msgstr "لم يعثر على مصدر سمَّاعة سطح مكتب" #~ msgid "Ok" #~ msgstr "حسنًا" #~ msgid "This frame rate may cause performance issues." #~ msgstr "قد يسبِّب معدَّل الإطارات هذا مشكلات أداء." #~ msgid "approx." #~ msgstr "تقريبًا" #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ اختيار شاشة أو نافذة أو موضع من الشاشة ليسجَّل" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 تحديد أكثر من مصدر" #~ msgid "Dave Patrick Caberto" #~ msgstr "ديف باترك كابرتو" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© ٢٠٢٢ ديف باترك كابرتو" #~ msgid "Click here to view the video." #~ msgstr "انقر هنا لترى المقطع." #~ msgid "Failed to select saving location" #~ msgstr "فشل اختيار موضع الحفظ" #~ msgid "GIF" #~ msgstr "جِف" #~ msgid "WebM" #~ msgstr "وِب‌إم" #~ msgid "MP4" #~ msgstr "إم‌بي‌٤" #~ msgid "Matroska" #~ msgstr "متروسكا" #~ msgid "WebM VP9" #~ msgstr "وِب‌إم في‌بي٩" #~ msgid "WebM AV1" #~ msgstr "وِب‌إم أي‌في١" #~ msgid "WebM VAAPI VP8" #~ msgstr "وِب‌إم فابي في‌بي٨" #~ msgid "WebM VAAPI VP9" #~ msgstr "وِب‌إم فابي في‌بي٩" #~ msgid "WebM VAAPI H264" #~ msgstr "وِب‌إم فابي إتش٢٦٤" #~ msgid "Failed to open file for writing" #~ msgstr "فشل فتح الملفِّ ليُكتب فيه" #~ msgid "Failed to select folder" #~ msgstr "فشل تحديد المجلد" #~ msgid "Donate (Liberapay)" #~ msgstr "تبرَّع (ليبر‌بَي)" #~ msgid "Donate (PayPal)" #~ msgstr "تبرَّع (بي‌بال)" #~ msgid "Check out {} for help." #~ msgstr "طالع {} لتُساعد." #~ msgid "Failed to open “{}” for writing" #~ msgstr "فشل فتح «{}» ليُكتب فيه" #~ msgid "_Cancel" #~ msgstr "_ألغِ" #~ msgid "_Select" #~ msgstr "_حدِّد" #~ msgid "No folder selected" #~ msgstr "لم يحدَّد مجلَّد" #~ msgid "Please choose a folder and try again." #~ msgstr "حدِّد مجلَّدًا فجرِّب ثانيةً." #~ msgid "Cannot access “{}”" #~ msgstr "لا يمكن الوصول ل‍ «{}»" #~ msgid "Please choose an accessible location and try again." #~ msgstr "اختر موضعًا يمكن الوصول إليه فجرِّب ثانيةً." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 التقط شاشتك دون أي متاعب." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "سجل المايكروفون، أصوات الحاسوب، أو كليهما في نفس الوقت." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "الصيغ المدعومة GIF، MP4، WebM، و MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "اختيار عدة مصادر." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 ترميز مسرَّع بالعتاد اختياريًا" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ اختر شاشة أو نافذة لتسجيلها." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ حدد منطقة معيَّنة في شاشتك لتسجيلها." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "ضبط مهلة زمنية قبل بدء التسجيل." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ إخفاء أو إظهار مؤشر الفأرة." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 اختر مكان حفظ التسجيل." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ استخدم اختصارات مفيدة في لوحة المفاتيح." #~ msgid "Toggle Computer Sounds" #~ msgstr "تمكين/تعطيل أصوات الحاسوب" #~ msgid "_Delay" #~ msgstr "_انتظار قبل التسجيل" #~ msgid "5 seconds" #~ msgstr "5 ثوانٍ" #~ msgid "10 seconds" #~ msgstr "10 ثواني" #~ msgid "_Video Format" #~ msgstr "_صيغة الفيديو" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_الحفظ في…" #~ msgid "Record Computer Sounds" #~ msgstr "تسجيل صوت الحاسوب" #~ msgid "Record From Microphone" #~ msgstr "تسجيل من المايكروفون" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "إلغاء المُهلة الزمنية قبل التسجيل" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "الحقوق Dave Patrick 2021" #~ msgid "Screencast Recorded!" #~ msgstr "تم تسجيل الشاشة!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "تم حفظ التسجيل في \"{}\"" #~ msgid "Open File" #~ msgstr "فتح ملف" #~ msgid "Screencast Portal Request Error" #~ msgstr "خطأ عند طلب منْفذ تسجيل الشاشة" #~ msgid "Pipeline Build Error" #~ msgstr "خطأ عند إنشاء خط التوصيل" #~ msgid "Recording Error" #~ msgstr "خطأ عند التسجيل" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "تأكد من التحقق من متطلبات تشغيل البرنامج و صفحة الأعطال." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "قد يكون لم يتم تثبيت ملحق GStreamer. في حال قمت بتثبيته، الرجاء الإبلاغ " #~ "في صفحة مشاكل كووها." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "الرجاء التأكد من أن مسار حفظ التسجيل موجود بالفعل. إذا كان موجودًا بالفعل، " #~ "قم بالإبلاغ في صفحة " #~ "مشاكل كووها." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "التقط صورة لشاشتك بطريقة مباشرة وسهلة دون تشتيت الانتباه." #~ msgid "Please choose an accessible location and retry." #~ msgstr "الرجاء اختيار موقع يمكن الوصول إليه وإعادة المحاولة." #~ msgid "Select a Folder" #~ msgstr "حدد مجلدا" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ حدد منطقة من شاشتك للتسجيل." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 دعم تنسيقات Matroska و WebM المجانية." #~ msgid "Open menu" #~ msgstr "فتح القائمة" #~ msgid "Show keyboard shortcuts" #~ msgstr "إظهار اختصارات لوحة المفاتيح" #~ msgid "Toggle record" #~ msgstr "تبديل التسجيل" #~ msgid "Cancel delay" #~ msgstr "مدة إلغاء التأخير" #~ msgid "Toggle computer sounds" #~ msgstr "تبديل أصوات الكمبيوتر" #~ msgid "Toggle microphone" #~ msgstr "تبديل الميكروفون" #~ msgid "Toggle pointer" #~ msgstr "تبديل المؤشر" #~ msgid "Delay" #~ msgstr "مدة تأخير" #~ msgid "Video Format" #~ msgstr "تنسيق الفيديو" #~ msgid "Save to…" #~ msgstr "حفظ في…" #~ msgid "Keyboard Shortcuts" #~ msgstr "اختصارات لوحة المفاتيح" #~ msgid "About Kooha" #~ msgstr "حول Kooha" #~ msgid "Select" #~ msgstr "إختيار" #~ msgid "Toggle capture mode" #~ msgstr "تبديل وضع الالتقاط" #~ msgid "Full Screen" #~ msgstr "تكبير الشاشة" #~ msgid "Processing" #~ msgstr "معالجة" #~ msgid "Save location not set" #~ msgstr "لم يتم تحديد مجلد الحفظ" #~ msgid "Recording cannot start" #~ msgstr "لايمكن بدء التسجيل" #~ msgid "Record computer sounds" #~ msgstr "تسجيل أصوات الكمبيوتر" #~ msgid "Record from microphone" #~ msgstr "تسجيل من الميكروفون" #~ msgid "Show pointer" #~ msgstr "إظهار المؤشر" SeaDve-Kooha-12ed227/po/bg.po000066400000000000000000000505751505224011700156270ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Victor Keranov , 2022. # twlvnn , 2024. # twlvnn kraftwerk , 2024. # msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-10-12 12:54+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.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Лесно записвай своя екран" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Скрийнкаст;Рекордер;Екран;Видео;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Записвай екрана си по интуитивен и ясен начин, без разсейване." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha е лесен скрийн рекордер с минималистичен интерфейс. Просто натискаш " "бутона за запис, без да са нужни много настройки." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Основните функции на Kooha включват следното:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" "🎙️ Записвайте микрофона, звука от работния плот или и двете едновременно" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Поддръжка на форматите WebM, MP4, GIF и Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Изберете монитор или част от екрана за запис" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Настройване на папката за запазване, видимостта на показалеца, честотата " "на кадрите и закъснението" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Експериментално хардуерно ускорено кодиране" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Опции за запис и бутон за начало на запис" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" "Продължителност на записа в процес на работа и бутон за спиране на записа" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "Отброяване до началото на запис и бутон за прекратяване на записа" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Избиране на участъка" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Отказване" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Готово" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Връщане на избора" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Общи" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Закъснение (секунди)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Времеви интервал преди началото на записа" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Папка със записите" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Целева папка за записите" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Видео" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Формат" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Честота на кадри" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Отваряне на менюто" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Показване на настройките" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Показване на клавишните комбинации" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Спиране на програмата" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Записване" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Превключване на запис" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Превключване на пауза" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Прекратяване на записването" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Настройки" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Превключване на звука на работния плот" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Превключване на микрофона" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Превключване курсора на мишката" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Основно меню" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Записване на целия екран или на прозорец" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Записване на участък от екрана" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Активиране на звука на работния плот" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Изключване на звука на работния плот" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Включване на микрофона" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Забраняване микрофона" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Показване на показалеца" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Скриване на показалеца" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Начало на записването" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Записване" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Забравяне на предишно избраните източници на записване" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Спиране на записването" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Спиране" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Пауза на записването" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Записване след…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Прекратяване на записването" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Изчистване…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Настройки" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Клавишни комбинации" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Относно „Kooha“" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" "Victor Keranov\n" "twlvnn kraft_werk " #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Дарете (купете ми кафе)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Преведи" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Клипът е записан" #: src/application.rs:144 msgid "Show in Files" msgstr "Показване във „Файлове“" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Неуспешно намиране на звуковото устройство по подразбиране" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Убедете се, че имате инсталиран PulseAudio на твоята система." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} час" msgstr[1] "{time} часа" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} минута" msgstr[1] "{time} минути" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} секунда" msgstr[1] "{time} секунди" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Неуспешно задаване на папката за записи" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Тази честота на кадри може да доведе до проблеми с производителността на " "избрания формат." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Този формат е експериментален и не се поддържа." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Без" #: src/recording.rs:42 msgid "No active profile" msgstr "Няма активен профил" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Неуспех при старт на записа" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Вижте {link} за помощ." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Възможно е да не е инсталирана приставка GStreamer." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Уверете се, че местоположението за записа съществува и е достъпно." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Възникна грешка по време на запис" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Неуспешно отваряне на „{path}“ за записване" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Избери папка за записи" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Неуспех при превключване на пауза" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "В момента се прави запис. Незабавното спиране на програмата може да доведе " "до невъзможност за възпроизвеждане на записа. Спрете записа, преди спиране " "на програмата." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Спиране на програмата ще прекрати обработването и може да доведе до " "невъзможност за възпроизвеждане на записа." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Искате ли да спрете програмата?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Копирай в системния буфер" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Копирано в системния буфер" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Покажи подробна грешка" #: src/window/mod.rs:289 msgid "Help" msgstr "Помощ" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Добре" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Искате ли да отворите настройките?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Възможно е избраният преди това формат да не е наличен. Отворете настройките " "и изберете формат, за да продължите да записвате." #: src/window/mod.rs:308 msgid "Later" msgstr "По-късно" #: src/window/mod.rs:310 msgid "Open" msgstr "Отваряне" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Записване е в ход" #: src/window/mod.rs:509 msgid "Paused" msgstr "На пауза" #: src/window/mod.rs:546 msgid "Normal" msgstr "Нормално" #: src/window/mod.rs:547 msgid "Selection" msgstr "Участък" #~ msgid "Failed to start device monitor" #~ msgstr "Неуспех при стартиране на монитора" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Неуспех при свързване с PulseAudio демона" #~ msgid "No microphone source found" #~ msgstr "Не бе открит микрофон" #~ msgid "No desktop speaker source found" #~ msgstr "Не бе открит десктоп говорител" #~ msgid "Ok" #~ msgstr "Ок" #~ msgid "Dave Patrick Caberto" #~ msgstr "Дейв Патрик Каберто" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Дейв Патрик Каберто" #~ msgid "Click here to view the video." #~ msgstr "Натисни тук за преглед на видеото." #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Failed to open file for writing" #~ msgstr "Неуспех при отваряне на файл за запис" #~ msgid "Donate (Liberapay)" #~ msgstr "Дарение (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Дарение (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Провери {} за помощ." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Неуспех при отваряне на “{}” за запис" #~ msgid "_Cancel" #~ msgstr "_Отказ" #~ msgid "_Select" #~ msgstr "_Избери" #~ msgid "No folder selected" #~ msgstr "Не е избрана директория" #~ msgid "Please choose a folder and try again." #~ msgstr "Моля избери директория и опитай отново." #~ msgid "Cannot access “{}”" #~ msgstr "Няма достъп до “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Моля избери достъпна локация и опитай отново." #~ msgid "Enable Desktop Sounds" #~ msgstr "Разреши десктоп звуците" #~ msgid "Disable Desktop Sounds" #~ msgstr "Забрани десктоп звуците" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Записвай своя екран без никакви усложнения." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Записвай звука от твоя микрофон, компютърните звуци или и двете заедно." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Поддръжка на WebM, MP4, GIF и MKV формати." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Избор от различни източници." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Хардуерно ускорен енкодинг по избор" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Избор на монитор или прозорец за запис." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Възможност за избор на определен участък от твоя екран." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Задаване на закъснение за подготовка преди старт на записа." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Показване или скриване на курсора на мишката." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Избор на локация за запис на твоето видео." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Използване на полезни клавишни комбинации." #~ msgid "Toggle Computer Sounds" #~ msgstr "Превключване звуците на компютъра" #~ msgid "_Delay" #~ msgstr "_Закъснение" #~ msgid "3 seconds" #~ msgstr "3 секунди" #~ msgid "5 seconds" #~ msgstr "5 секунди" #~ msgid "10 seconds" #~ msgstr "10 секунди" #~ msgid "_Video Format" #~ msgstr "_Видео формат" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Запиши в…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Може би няма инсталиран GStreamer плъгин. Ако е инсталиран и все пак не " #~ "работи, моля докладвай на страницата на Kooha." SeaDve-Kooha-12ed227/po/bqi.po000066400000000000000000000240171505224011700160020ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # hosseinabaspanah , 2023, 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-02-20 02:02+0000\n" "Last-Translator: hosseinabaspanah \n" "Language-Team: Luri (Bakhtiari) \n" "Language: bqi\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: Weblate 5.5-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "kohā" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "balge nemāyeš xote be xuvi zaft koň" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "eskerin kast;zaft;balge nemāyeš;film" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "qābeliyatā asli kohā yonowên:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "" #: src/about.rs:50 msgid "Translate" msgstr "" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "" #: src/application.rs:144 msgid "Show in Files" msgstr "" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "" #: src/window/mod.rs:546 msgid "Normal" msgstr "" #: src/window/mod.rs:547 msgid "Selection" msgstr "" SeaDve-Kooha-12ed227/po/ca.po000066400000000000000000000375301505224011700156160ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # cubells , 2022. # Joan Aymà , 2023, 2024. # victor dargallo , 2023, 2024. # Adolfo Jayme Barrientos , 2023. # xavi Julián , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-11-16 22:00+0000\n" "Last-Translator: Joan Aymà \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.9-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Enregistreu la pantalla elegantment" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Captura de pantalla;Gravadora;Enregistrar;Pantalla;Vídeo;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "Captura la teva pantallada de manera intuitiva i directe sense distraccions." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha és un gravador de pantalla simple amb una interfície minimalista. " "Simplement prem el botó de gravar sense haver de configurar un munt " "d'opcions." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Les principals característiques de Kooha inclouen:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" "🎙️ Enregistra el micròfon, l'àudio de l'escriptori o ambdós al mateix temps" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Suport pels formats WebM, MP4, GIF i Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" "🖥️ Seleccioneu un monitor o una porció de la pantalla per enregistrar-la" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Ubicació de guardat, visibilitat del punter, velocitat de fotogrames i " "retard configurables" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Codificació (encoding) experimental accelerada per maquinari" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Opcions d'enregistrament i botó per iniciar la gravació" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Durada de la gravació en curs i botó per aturar la gravació" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" "Compte enrere per iniciar la gravació i botó per cancel·lar la gravació" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Selecció d'àrea" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Cancel·la" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Fet" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Reinicia la selecció" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "General" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Retard (en segons)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Interval de temps abans de començar l'enregistrament" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Carpeta d'enregistraments" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Carpeta de destinació de les gravacions" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Vídeo" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Format" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Velocitat de fotogrames" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Obre el menú" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Mostra les Preferències" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Mostra les dreceres" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Surt" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "S'està enregistrant" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Commutar enregistrament" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Commutar pausa" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Canceŀla l'enregistrament" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Configuració" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Commuta l'àudio de l'escriptori" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Commuta el micròfon" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Commuta el punter" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Menú principal" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Captura un monitor o finestra" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Captura una porció de la pantalla" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Activa l'àudio de l'escriptori" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Desactiva l'àudio de l'escriptori" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Activa el micròfon" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Desactiva el micròfon" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Mostra el punter" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Amaga el punter" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Comença l'enregistrament" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Enregistra" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Oblida els orígens seleccionats prèviament" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Atura l'enregistrament" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Atura" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Pausa l'enregistrament" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Inicia l'enregistrament en…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Canceŀla l'enregistrament" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "S'està buidant…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Preferències" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Dreceres de teclat" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Quant a Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Adolfo Jayme Barrientos, Víctor Dargallo, Joan Aymà" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Feu una donació (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Tradueix" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Pantalla enregistrada" #: src/application.rs:144 msgid "Show in Files" msgstr "Mostra a Fitxers" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "No s'ha pogut trobar el dispositiu d'àudio predeterminat" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Assegureu-vos de tenir PulseAudio instaŀlat al vostre sistema." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} hora" msgstr[1] "{time} hores" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minut" msgstr[1] "{time} minuts" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} segon" msgstr[1] "{time} segons" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "No s'ha pogut establir la carpeta d'enregistraments" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Aquesta velocitat de fotogrames pot provocar problemes de rendiment al " "format seleccionat." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Aquest format és experimental i no suportat." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Cap" #: src/recording.rs:42 msgid "No active profile" msgstr "No hi ha cap perfil activat" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "No s'ha pogut iniciar l'enregistrament" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Consulteu {link} per obtenir ajuda." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Un plugin de GStreamer no està instaŀlat." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Assegureu-vos que la ubicació de guardat existeix i és accessible." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "S'ha produït un error en l'enregistrament" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "No s'ha pogut obrir \"{path}\" per escriure" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Selecciona la carpeta d'enregistraments" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "No s'ha pogut commutar la pausa" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Actualment hi ha una gravació en curs. Si tanqueu immediatament, la gravació " "no es podrà reproduir. Si us plau, atureu la gravació abans de sortir." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Si es tanca, es cancel·larà el processament i pot provocar que la gravació " "no es pugui reproduir." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Voleu tancar l'aplicació?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Copia al porta-retalls" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "S'ha copiat al porta-retalls" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Mostra l'error detallat" #: src/window/mod.rs:289 msgid "Help" msgstr "Ajuda" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "D'acord, entès" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Voleu obrir les Preferències?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Pot ser que el format seleccionat prèviament no estigui disponible. Obriu " "les preferències i seleccioneu un format per seguir enregistrant." #: src/window/mod.rs:308 msgid "Later" msgstr "Més endavant" #: src/window/mod.rs:310 msgid "Open" msgstr "Obre" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Hi ha una gravació en curs" #: src/window/mod.rs:509 msgid "Paused" msgstr "Pausat" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Selecció" #~ msgid "Failed to start device monitor" #~ msgstr "No s'ha pogut iniciar el seguiment del dispositiu" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "La connexió a PulseAudio ha fallat" #~ msgid "No microphone source found" #~ msgstr "No s'ha trobat cap font de micròfon" #~ msgid "No desktop speaker source found" #~ msgstr "No s'ha trobat cap altaveu d'escriptori" #~ msgid "Ok" #~ msgstr "D'acord" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Aquesta velocitat de fotogrames pot causar problemes de rendiment." #~ msgid "approx." #~ msgstr "aprox." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ Seleccioneu un monitor, una finestra o una porció de la pantalla a " #~ "enregistrar" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Selecció de múltiples entrades" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Feu clic aquí per veure el vídeo." #~ msgid "Failed to select saving location" #~ msgstr "No s'ha pogut seleccionar la ubicació per desar" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "No s'ha pogut obrir el fitxer per escriure" #~ msgid "Donate (Liberapay)" #~ msgstr "Donació (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Donació (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Comprova {} per ajuda." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Ha fallat a l'obrir \"{}\" per escriure-hi" #~ msgid "_Cancel" #~ msgstr "_Cancela" #~ msgid "_Select" #~ msgstr "_Selecciona" #~ msgid "No folder selected" #~ msgstr "No s'ha seleccionat cap carpeta" #~ msgid "Please choose a folder and try again." #~ msgstr "Sisplau selecciona una carpeta i torna a provar." #~ msgid "Cannot access “{}”" #~ msgstr "No es pot accedir a \"{}\"" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Sisplau selecciona una ubicació accesssible i torna a provar." SeaDve-Kooha-12ed227/po/cs.po000066400000000000000000000563711505224011700156440ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Jan Novák , 2021, 2022. # Vojtěch Perník , 2021, 2022, 2023. # Petr Šimáček , 2021. # multiflexi , 2022. # Fjuro , 2023, 2024. # Fjuro , 2024. # Jiří Doubravský , 2025. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2025-05-08 08:01+0000\n" "Last-Translator: Jiří Doubravský \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" "X-Generator: Weblate 5.12-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Elegantně zaznamenejte svou obrazovku" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Záznam obrazovky;Rekordér;Zaznamenávač;Obrazovka;Video;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Zachytit obrazovku intuitivním a jasným způsobem bez rušivých vlivů." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha je jednoduchý záznam obrazovky s minimalistickým rozhraním. Můžete " "pouze kliknout na tlačítko nahrávat bez nutnosti cokoliv nastavovat." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Hlavní funkce Kooha jsou:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Zaznamenávejte mikrofon, zvuk plochy, nebo klidně obojí najednou" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Podpora pro formáty WebM, MP4, GIF a Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Zvolte monitor nebo část obrazovky k nahrávání" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Konfigurovatelné umístění pro ukládání, viditelnost kurzoru, počet snímků " "za sekundu a pozdržení" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Experimentální hardwarově akcelerované kódování" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Možnosti nahrávání a tlačítko pro spuštění nahrávání" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Délka probíhajícího nahrávání a tlačítko pro zastavení nahrávání" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "Odpočet do začátku nahrávání a tlačítko pro zrušení nahrávání" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Vyberte oblast" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Zrušit" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Hotovo" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Resetovat výběr" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Obecné" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Pozdržení (sekundy)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Časový interval před začátkem nahrávání" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Složka nahrávek" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Cílová složka pro nahrávky" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Formát" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Počet snímků za sekundu" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Otevřít menu" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Zobrazit předvolby" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Zobrazit zkratky" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Ukončit" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Nahrávání" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Zapnout/vypnout nahrávání" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Pozastavit/pokračovat" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Zrušit nahrávku" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Nastavení" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Zapnout/vypnout zvuk plochy" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Zapnout/vypnout mikrofon" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Zapnout/vypnout kurzor" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Hlavní nabídka" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Zachytávat monitor nebo okno" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Zachytávat výběr obrazovky" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Zapnout zvuk plochy" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Vypnout zvuk plochy" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Zapnout mikrofon" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Vypnout mikrofon" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Zobrazit kurzor" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Skrýt ukazatel myši" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Začít nahrávat" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Nahrát" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Zapomenout předchozí zdroje videa" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Zastavit nahrávání" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Zastavit" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Pozastavit nahrávání" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Nahrávání za…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Zrušit nahrávání" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Čištění…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Předvolby" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Klávesové zkratky" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_O aplikaci Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" "Jan Novák\n" "Vojtěch Perník\n" "Jaroslav Svoboda\n" "Jonáš Loskot" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Darovat (kupte mi kávu)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Překlad" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Záznam obrazovky ukončen" #: src/application.rs:144 msgid "Show in Files" msgstr "Zobrazit v souborech" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Nepodařilo se nalézt výchozí zvukové zařízení" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Ujistěte se, že máte nainstalováno PulseAudio." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} hodina" msgstr[1] "{time} hodiny" msgstr[2] "{time} hodin" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minuta" msgstr[1] "{time} minuty" msgstr[2] "{time} minut" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} sekunda" msgstr[1] "{time} sekundy" msgstr[2] "{time} sekund" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Nepodařilo se nastavit složku pro nahrávky" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Tato snímková frekvence může u vybraného formátu způsobit problémy s výkonem." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Tento formát je experimentální a není podporovaný." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Žádný" #: src/recording.rs:42 msgid "No active profile" msgstr "Žádný aktivní profil" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Nahrávání selhalo" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Podívejte se na {link} pro nápovědu." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Plugin GStreameru nemusí být nainstalován." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Ujistěte se, že místo pro uložení existuje a je dostupné." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Během nahrávání se vyskytla chyba" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Neppodařilo se otevřít „{path}“ pro zápis" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Vybrat adresář pro nahrávky" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Pozastavení se nezdařilo" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Momentálně probíhá nahrávání. Okamžité ukončení aplikace může způsobit, že " "nahrávka bude poškozená. Před ukončením prosím nejprve zastavte nahrávání." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "Ukončením přerušíte zpracování a nahrávku nemusí být možné přehrát." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Ukončit aplikaci?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Kopírovat do schránky" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Zkopírováno do schránky" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Zobrazit podrobnosti chyby" #: src/window/mod.rs:289 msgid "Help" msgstr "Nápověda" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Jasně, chápu" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Otevřít předvolby?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Dříve zvolený formát mohl být nedostupný. Otevřete předvolby a vyberte " "formát pro pokračování v nahrávání." #: src/window/mod.rs:308 msgid "Later" msgstr "Později" #: src/window/mod.rs:310 msgid "Open" msgstr "Otevřít" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Probíhá nahrávání" #: src/window/mod.rs:509 msgid "Paused" msgstr "Pozastaveno" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normální" #: src/window/mod.rs:547 msgid "Selection" msgstr "Výběr" #~ msgid "Failed to start device monitor" #~ msgstr "Odposlouchávání zařízení selhalo" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Připojení k PulseAudio daemonu selhalo" #~ msgid "No microphone source found" #~ msgstr "Nenalezen žádný mikrofonní zdroj" #~ msgid "No desktop speaker source found" #~ msgstr "Nenalezen žádný zdroj s reproduktory" #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Tento počet snímků za sekundu může způsobit problémy s výkonem." #~ msgid "approx." #~ msgstr "cca." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ Nahrávat můžete monitor, okno nebo výřez obrazovky" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Výběr více zdrojů" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Klikněte zde pro zobrazení videa." #~ msgid "Failed to select saving location" #~ msgstr "Nepodařilo se vybrat uložení lokace" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Nezdařilo se otevřít soubor pro zápis" #~ msgid "Failed to select folder" #~ msgstr "Nepodařilo se vybrat složku" #~ msgid "Donate (Liberapay)" #~ msgstr "Podpořit (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Podpořit (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Pro pomoc navštivte {}." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Nezdařilo se otevření “{}” pro zápis" #~ msgid "_Cancel" #~ msgstr "_Zrušit" #~ msgid "_Select" #~ msgstr "_Vybrat" #~ msgid "No folder selected" #~ msgstr "Nebyla vybrána žádná složka" #~ msgid "Please choose a folder and try again." #~ msgstr "Prosím, vyberte složku a zkuste to znovu." #~ msgid "Cannot access “{}”" #~ msgstr "Nelze získat přístup k \"{}\"" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Prosím, vyberte přístupné místo a zkuste to znovu." #~ msgid "Enable Desktop Sounds" #~ msgstr "Zapnout systémové zvuky" #~ msgid "Disable Desktop Sounds" #~ msgstr "Vypnout systémové zvuky" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Zaznamenejte svou obrazovku bez problémů." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Nahrávejte zvuk z mikrofonu, z pořítače nebo z obojího zároveň." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Podpora formátů WebM, MP4, GIF a MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "Výběr více zdrojů." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Volitelné hardwarově akcelerované kódování" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Vyberte k nahrávání monitor nebo okno." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Vytvořte výběr, který zachytí určitou oblast z vaší obrazovky." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Nastavte zpoždění, aby jste se připravili před nahráváním." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Zobrazte nebo skryjte ukazatele myši." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Zvolte místo uložení svých nahrávek." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Využijte užitečné klávesové zkratky." #~ msgid "Toggle Computer Sounds" #~ msgstr "Zapnout/vypnout zvuky z plochy" #~ msgid "_Delay" #~ msgstr "Z_poždění" #~ msgid "3 seconds" #~ msgstr "3 sekundy" #~ msgid "5 seconds" #~ msgstr "5 sekund" #~ msgid "10 seconds" #~ msgstr "10 sekund" #~ msgid "_Video Format" #~ msgstr "_Formát videa" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Uložit do…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "GStreamer plugin možná není nainstalován. Pokud je nainstalovaný ale " #~ "nefunguje, prosím pošli report na stránce s chybami Kooha ." #~ msgid "Record Computer Sounds" #~ msgstr "Nahrávat zvuky z plochy" #~ msgid "Record From Microphone" #~ msgstr "Nahrávat zvuk z mikrofonu" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Zrušit zpoždění" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Nahrávač obrazovky!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Nahrávka byla uložena do \"{}\"" #~ msgid "Open File" #~ msgstr "Otevřít soubor" #~ msgid "Screencast Portal Request Error" #~ msgstr "Chyba požadavku portálu Screencast" #~ msgid "Pipeline Build Error" #~ msgstr "Chyba při sestavování v pipeline" #~ msgid "Recording Error" #~ msgstr "Chyba při nahrávání" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Zkontroluj závislosti běhového prostředí a Stránku \"It doesn't work\"." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Zajisti aby místo pro ukládání existovalo a bylo dostupné. Pokud místo " #~ "existuje a je skutečně dostupné, něco se pokazilo. Porsím zašli report s " #~ "chybou na stránku s " #~ "chybami kooha." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Plugin GStreamer nejspíše nebude nainstalovaný, pokud není prosíme o " #~ "vyplnění reportu na Kooha's issue page." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Ujisti se že existuje umístění kam chceš ukládat, pokud ne něco se " #~ "pokazilo, můžeš vyplnit report na Kooha's issue page." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "" #~ "Zaznamenej svou obrazovku jednoduše a bez zbytečných starostí a " #~ "rozptylování." #~ msgid "Sorry! An error has occurred." #~ msgstr "Omlouváme se! Nastala chyba." #~ msgid "Please choose an accessible location and retry." #~ msgstr "Prosím vyberte místo, kam máte přístup a zkuste znovu." #~ msgid "Select a Folder" #~ msgstr "Vyberte složku" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Vyber oblast obrazovky pro nahrávání." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Podpora pro volné formáty Matroska a WebM." #~ msgid "Open menu" #~ msgstr "Otevřít nabídku" #~ msgid "Show keyboard shortcuts" #~ msgstr "Zobrazit klávesové zkratky" #~ msgid "Toggle record" #~ msgstr "Zapnout nahrávání" #~ msgid "Cancel delay" #~ msgstr "Zrušit zpoždění" #~ msgid "Toggle computer sounds" #~ msgstr "Zapnout nahrávání zvuku počítače" #~ msgid "Toggle microphone" #~ msgstr "Zapnout mikrofón" #~ msgid "Toggle pointer" #~ msgstr "Zapnout ukazatel" #~ msgid "Delay" #~ msgstr "Zpoždění" #~ msgid "Video Format" #~ msgstr "Formát videa" #~ msgid "Save to…" #~ msgstr "Uložit do…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Klávesové zkratky" #~ msgid "About Kooha" #~ msgstr "O Kooha" #~ msgid "Select" #~ msgstr "Vybrat" #~ msgid "Toggle capture mode" #~ msgstr "Vybrat režim nahrávání" #~ msgid "Full Screen" #~ msgstr "Celá obrazovka" #~ msgid "Processing" #~ msgstr "Zpracovávání" #~ msgid "Save location not set" #~ msgstr "Místo pro ukládání nevybráno" #~ msgid "Recording cannot start" #~ msgstr "Nelze zapnout nahrávání" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "Místo vybrané pro ukládání mohlo být smazáno." #~ msgid "The recording has been saved in" #~ msgstr "Nahrávka byla uložena" #~ msgid "Record computer sounds" #~ msgstr "Nahrávat zvůk z počítače" #~ msgid "Record from microphone" #~ msgstr "Nahrávat zvuk z mikrofonu" #~ msgid "Show pointer" #~ msgstr "Zobrazit ukazatel" #~ msgid "Elegantly record your screen " #~ msgstr "Elegantně nahraj svou obrazovku. " #~ msgid "Simple screen recorder" #~ msgstr "Jednoduchý program pro nahrávání obrazovky" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Kooha je jednoduchý program na nahrávání obrazovky postavený na GTK. " #~ "Dokáže nahrávat obrazovku společně se zvukem z mikrofonu nebo počítače." SeaDve-Kooha-12ed227/po/da.po000066400000000000000000000422471505224011700156200ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Rantyrant , 2022. # Johan Fagerberg , 2023. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2023-12-21 17:09+0000\n" "Last-Translator: Johan Fagerberg \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.4-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Optag din skærm på en elegant måde" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Optag;Skærm;Video;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Optag din skærm på en intuitiv og ligetil måde uden distraktioner." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha er en simpel skærmoptager med en minimalistisk brugerflade. Du kan " "bare klikke på optageknappen uden at skulle konfigurere en masse " "indstillinger." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "De vigtigste funktioner i Kooha omfatter følgende:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Optag mikrofon, skrivebordslyd, eller begge på samme tid" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Understøttelse af WebM, MP4, GIF og Matroska formater" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Konfigurerbar lagringssted, markør synlighed, billedhastighed, og " "forsinkelse" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Eksperimentel hardwarebaseret indkodning" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Vælg område" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Annuller" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Færdig" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Nulstil valg" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Generelt" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Forsinkelse (sekunder)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Optagelsesmappe" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Format" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Billedhastighed" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Åbn menu" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Vis indstillinger" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Vis genveje" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Afslut" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Optagelse" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Start/stop optagelse" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Slå pause til/fra" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Annuller optagelse" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Instillinger" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Slå skrivebordslyd til/fra" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Slå mikrofon til/fra" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Slå musemarkør til/fra" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Hovedmenu" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Optage en skærm eller et vindue" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Optag et udvalg af skærmen" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Slå skrivebordslyd til" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Slå skrivebordslyd fra" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Slå mikrofon til" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Slå mikrofon fra" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Vis markør" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Skjul markør" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Start optagelse" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Optag" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Glem tidligere valgte videokilder" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Stop optagelse" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Stop" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Pause optagelse" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Optager om…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Annuller optagelse" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Renser…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Indstillinger" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Tastaturgenveje" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Om Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Marc Eckert" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Donere (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Oversæt" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Optagelse færdig" #: src/application.rs:144 msgid "Show in Files" msgstr "Vis i Filer" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Sørg for, at du har PulseAudio installeret på dit system." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Dette format er eksperimentelt og usupporteret." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Ingen" #: src/recording.rs:42 msgid "No active profile" msgstr "Ingen aktiv profil" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Kunne ikke starte optagelse" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Se {link} for hjælp." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Et GStreamer plugin er muligvis ikke installeret." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Tjek at lagrinsstedet eksisterer og er tilgængeligt." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Der opstod en fejl under optagelsen" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Kunne ikke åbne “{path}” til skrivning" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Vælg Optagelsesmappe" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Kunne ikke slå pause til/fra" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Kopier til udklipsholder" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Kopieret til udklipsholder" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Vis detaljeret fejl" #: src/window/mod.rs:289 msgid "Help" msgstr "Hjælp" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Åben Indstillinger?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Det tidligere valgte format kan have været utilgængeligt. Åben indstillinger " "og vælg et format for at fortsætte optagelse." #: src/window/mod.rs:308 msgid "Later" msgstr "Senere" #: src/window/mod.rs:310 msgid "Open" msgstr "Åben" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "På pause" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Udvælgelse" #~ msgid "Failed to start device monitor" #~ msgstr "Kunne ikke starte enhedsmonitor" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Kunne ikke forbinde til PulseAudio daemon" #~ msgid "No microphone source found" #~ msgstr "Ingen mikrofonkilde fundet" #~ msgid "No desktop speaker source found" #~ msgstr "Ingen skrivebords højtalerkilde fundet" #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Denne billedhastighed kan forårsage problemer med ydeevnen." #~ msgid "approx." #~ msgstr "ca." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ Vælg en skærm, et vindue, eller en del af skærmen til at optage" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Valg af flere kilder" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Klik her for at se video." #~ msgid "Failed to select saving location" #~ msgstr "Kunne ikke vælge lagringslokation" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Kunne ikke åbne fil til skrivning" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Optag din skærm uden besvær." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Optag din mikrofon, computerlyde eller begge dele på samme tid." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Understøttelse af WebM-, MP4-, GIF- og MKV-formater." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Valg af flere kilder." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Valgfri hardwareaccelereret kodning" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Vælg en skærm eller et vindue til at optage." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Opret en markering for at optage bestemte områder fra skærmen." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "" #~ "⏲️ Indstil forsinkelsen for at forberede dig, før du begynder at optage." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Skjul eller vis musemarkøren." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Vælg et sted at gemme din optagelse." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Brug nyttige tastaturgenveje." #~ msgid "Toggle Computer Sounds" #~ msgstr "Slå computerlyde til/fra" #~ msgid "_Delay" #~ msgstr "_Forsinkelse" #~ msgid "5 seconds" #~ msgstr "5 sekunder" #~ msgid "10 seconds" #~ msgstr "10 sekunder" #~ msgid "_Video Format" #~ msgstr "_Videoformat" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Gem til…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Der er muligvis ikke installeret et GStreamer-plugin. Hvis det er " #~ "installeret, men stadig ikke fungerer korrekt, skal du rapportere det til " #~ "Kooha's problem-side." #~ msgid "Record Computer Sounds" #~ msgstr "Optag computerlyde" #~ msgid "Record From Microphone" #~ msgstr "Optag fra mikrofon" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Annuller forsinkelse" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Ophavsret 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Screencast optaget!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Optagelsen er blevet gemt i \"{}\"" #~ msgid "Open File" #~ msgstr "Åben fil" #~ msgid "Screencast Portal Request Error" #~ msgstr "Fejl i screencast-portalanmodning" #~ msgid "Pipeline Build Error" #~ msgstr "Pipeline Build-fejl" #~ msgid "Recording Error" #~ msgstr "Der opstod en fejl under optagelse" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Sørg for at tjekke for runtime-afhængigheder og Det virker ikke." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Sørg for, at gemmerstedet findes eller er tilgængeligt. Hvis den faktisk " #~ "eksisterer eller er tilgængelig, er der gået noget galt, og du bedes " #~ "rapportere det til Kooha's problem-side." SeaDve-Kooha-12ed227/po/de.po000066400000000000000000000606561505224011700156300ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Jonathan Haas , 2021. # J. Lavoie , 2021. # Heinrich Heinzer , 2021. # Nico , 2021, 2022. # Milo Ivir , 2021. # sal0max , 2022, 2023. # Schlömi , 2022. # Nils Martel , 2022. # Justin Nogossek , 2023. # Starbat , 2024. # ChefExperte , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-10-22 21:16+0000\n" "Last-Translator: ChefExperte \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: Weblate 5.8.2-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Nimm deinen Bildschirm elegant auf" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Rekorder;Aufnahme;Bildschirm;Video;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "Nimm deinen Bildschirm auf intuitive und unkomplizierte Weise ohne " "Ablenkungen auf." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha ist ein einfacher Bildschirmrekorder mit einer minimalistischen " "Oberfläche. Du kannst einfach auf die Aufnahmetaste klicken, ohne einen " "Haufen von Einstellungen konfigurieren zu müssen." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Zu den Hauptmerkmalen von Kooha gehören:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Nimm Mikrofon, Computer oder beides gleichzeitig auf" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "Unterstützung für WebM, MP4, GIF und das Matroska Format" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Wähle einen Monitor oder Bildausschnitt für die Aufnahme" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "Konfigurieren Sie den Speicherort, die Sichtbarkeit des Zeigers, die " "Bildrate und die Verzögerung" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "Experimentelles, hardwarebeschleunigtes Kodieren" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Aufnahmeoptionen und Startknopf der Aufnahme" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Bereich auswählen" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Abbrechen" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Fertig" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Auswahl zurücksetzen" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Allgemeines" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Verzögerung (Sekunden)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Zeitintervall bevor die Aufnahme beginnt" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Aufnahmen Speicherort" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Zielordner für die Aufnahmen" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Format" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Bildrate" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Menü öffnen" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Zeige Einstellungen" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Tastaturkürzel anzeigen" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Schließen" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Aufnahme" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Aufnahme umschalten" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Pause umschalten" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Aufzeichnung abbrechen" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Einstellungen" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Desktop Audio umschalten" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Mikrofon umschalten" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Cursor umschalten" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Hauptmenü" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Bildschirm oder Fenster aufnehmen" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Auswahl des Bildschirms aufnehmen" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Desktop Audio aktivieren" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Desktop Audio deaktivieren" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Mikrofon aktivieren" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Mikrofon deaktivieren" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Mauszeiger anzeigen" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Mauszeiger ausblenden" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Aufnahme starten" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Aufnehmen" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Zuvor ausgewählte Videoquellen vergessen" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Aufnahme stoppen" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Stopp" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Aufnahme pausieren" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Aufnahme in …" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Aufnahme abbrechen" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Abschließen…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Einstellungen" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Tastaturkürzel" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Über Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" "J. Lavoie, Andy Pillip, Heinrich Heinzer, Nico, Milo Ivir, sal0max, Marlon, " "Jörn Weigend, Florian Schaupp, Justin Nogossek" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Spenden (Kauf mir einen Kaffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Übersetzen" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Screencast aufgezeichnet" #: src/application.rs:144 msgid "Show in Files" msgstr "In Dateien anzeigen" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Standard-Audiogerät konnte nicht gefunden werden" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Stelle sicher, dass PulseAudio auf deinem System installiert ist." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} Stunde" msgstr[1] "{time} Stunden" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} Minute" msgstr[1] "{time} Minuten" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} Sekunde" msgstr[1] "{time} Sekunden" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Aufnahmeordner konnte nicht festgelegt werden" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Diese Bildrate kann Performance-Probleme beim gewählten Format verursachen." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Dieses Format ist experimentell und nicht unterstützt." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Kein" #: src/recording.rs:42 msgid "No active profile" msgstr "Kein aktives Profil" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Aufnahme konnte nicht gestartet werden" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Schau bei {link} nach Hilfe." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Eine GStreamer Erweiterung ist womöglich nicht installiert." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Stelle sicher, dass der Speicherort existiert und zugänglich ist." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Bei der Aufzeichnung ist ein Fehler aufgetreten" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Konnte “{path}” nicht zum Schreiben öffnen" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Aufnahmeordner auswählen" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Pause konnte nicht umgeschaltet werden" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Eine Aufnahme läuft gerade. Sofortiges Beenden kann dazu führen, dass die " "Aufnahme nicht abspielbar ist. Bitte stoppe die Aufnahme vor dem Beenden." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Beenden bricht die Verarbeitung ab und kann dazu führen, dass die Aufnahme " "nicht abspielbar ist." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Anwendung beenden?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "In die Zwischenablage kopieren" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "In die Zwischenablage kopiert" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Detaillierten Fehler anzeigen" #: src/window/mod.rs:289 msgid "Help" msgstr "Hilfe" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "OK, verstanden" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Einstellungen öffnen?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Das vorher ausgewählte Format ist eventuelle nicht verfügbar. Öffne die " "Einstellungen und wähle ein Format um weiter aufzunehmen." #: src/window/mod.rs:308 msgid "Later" msgstr "Später" #: src/window/mod.rs:310 msgid "Open" msgstr "Öffnen" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Eine Aufnahme läuft" #: src/window/mod.rs:509 msgid "Paused" msgstr "Pausiert" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Auswahl" #~ msgid "Failed to start device monitor" #~ msgstr "Gerätemonitor konnte nicht gestartet werden" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Verbindung zum PulseAudio-Daemon fehlgeschlagen" #~ msgid "No microphone source found" #~ msgstr "Keine Mikrofonquelle gefunden" #~ msgid "No desktop speaker source found" #~ msgstr "Keine Desktop-Lautsprecherquelle gefunden" #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Diese Bildrate könnte Leistungsprobleme verursachen." #~ msgid "approx." #~ msgstr "geschätzt" #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "Wähle einen Bildschirm, ein Fenster oder eine Ausschnitt zum Aufnehmen aus" #~ msgid "🗔 Multiple sources selection" #~ msgstr "Auswahl aus mehreren Quellen" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Klicke hier, um das Video anzusehen." #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Datei konnte nicht zum Schreiben geöffnet werden" #~ msgid "Donate (Liberapay)" #~ msgstr "Spenden (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Spenden (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Siehe {} für Hilfe." #~ msgid "Failed to open “{}” for writing" #~ msgstr "„{}“ konnte nicht zum Schreiben geöffnet werden" #~ msgid "_Cancel" #~ msgstr "_Abbrechen" #~ msgid "_Select" #~ msgstr "_Auswählen" #~ msgid "No folder selected" #~ msgstr "Kein Ordner ausgewählt" #~ msgid "Please choose a folder and try again." #~ msgstr "Bitte wähle einen Ordner und versuche es erneut." #~ msgid "Cannot access “{}”" #~ msgstr "Kein Zugriff auf „{}“" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Bitte wähle einen zugänglichen Pfad und versuche es erneut." #~ msgid "Enable Desktop Sounds" #~ msgstr "Desktop-Sounds aktivieren" #~ msgid "Disable Desktop Sounds" #~ msgstr "Desktop-Sounds deaktivieren" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Erfasse deinen Ihren Bildschirm mühelos." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Nehme dein Mikrofon, Computertöne oder beides gleichzeitig auf." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Unterstützung für die Formate WebM, MP4, GIF und MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Auswahl mehrerer Quellen." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Optionale hardwarebeschleunigte Kodierung" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Wähle einen Monitor oder ein Fenster zum Aufzeichnen." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "" #~ "🖼️ Erstelle eine Auswahl, um einen bestimmten Bereich auf Ihrem Bildschirm " #~ "aufzuzeichnen." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Stelle eine Verzögerung ein, um die Aufnahme vorzubereiten." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Mauszeiger ein- oder ausblenden." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Wähle einen Speicherort für deine Aufnahme." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Nutze hilfreiche Tastaturkürzel." #~ msgid "Toggle Computer Sounds" #~ msgstr "Computersounds umschalten" #~ msgid "_Delay" #~ msgstr "_Verzögerung" #~ msgid "3 seconds" #~ msgstr "3 Sekunden" #~ msgid "5 seconds" #~ msgstr "5 Sekunden" #~ msgid "10 seconds" #~ msgstr "10 Sekunden" #~ msgid "_Video Format" #~ msgstr "_Videoformat" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Speichern unter…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Unter Umständen ist kein GStreamer-Plugin installiert. Falls es " #~ "installiert ist, aber nicht funktioniert, das Problem bitte auf der Kooha Issue Seite " #~ "melden." #~ msgid "Record Computer Sounds" #~ msgstr "Computertöne aufnehmen" #~ msgid "Record From Microphone" #~ msgstr "Mikrophon aufnehmen" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Verzögerung abbrechen" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Video-Aufzeichnung aufgenommen!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Die Aufnahme wurde in „{}“ gespeichert" #~ msgid "Open File" #~ msgstr "Datei öffnen" #~ msgid "Screencast Portal Request Error" #~ msgstr "Screencast-Portal-Anforderung fehlgeschlagen" #~ msgid "Pipeline Build Error" #~ msgstr "Pipeline-Build-Fehler" #~ msgid "Recording Error" #~ msgstr "Aufnahmefehler" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Stellen Sie sicher, dass Sie die Laufzeitabhängigkeiten und die It Doesn't Work-" #~ "Seite überprüfen." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Bitte sicherstellen, dass der Speicherort existiert und zugreifbar ist. " #~ "Falls er existiert und zugreifbar ist, ist etwas schief gegangen. Das " #~ "Problem bitte auf der Kooha Issue Seite melden." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Ein GStreamer-Plugin scheint nicht installiert zu sein. Falls dies nicht " #~ "der Fall ist, melden Sie es bitte auf der Kooha Issue-Seite." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Stellen Sie sicher, dass der Speicherort existiert. Falls dies nicht das " #~ "Problem war, ist etwas anderes schiefgelaufen. Bitte melden Sie dies auf " #~ "der Kooha Issue-Seite." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "" #~ "Erfassen Sie Ihren Bildschirm auf einfache und schmerzlose Weise ohne " #~ "Ablenkung." #~ msgid "" #~ "Make sure to check for the runtime dependencies and \"It Doesn't Work\" " #~ "page in Kooha's readme page. ({})" #~ msgstr "" #~ "Achte auf die \"It Doesn't Work\" Seite auf der Readme-Seite und die dort " #~ "angegebenen Abhängigkeiten. ({})" #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's " #~ "issue page. ({})" #~ msgstr "" #~ "Ein GStreamer-Plugin ist möglicherweise nicht installiert. Falls dies " #~ "nicht der Fall ist, melde dies bitte der Issue-Seite von Kooha. ({})" #~ msgid "Screencast Portal Request Failed" #~ msgstr "Screencast-Portal-Anforderung fehlgeschlagen" #~ msgid "Recording Failed" #~ msgstr "Aufnahme fehlgeschlagen" #~ msgid "Pipeline Build Failed" #~ msgstr "Pipeline-Build fehlgeschlagen" #~ msgid "Please choose an accessible location and retry." #~ msgstr "" #~ "Bitte wählen Sie einen erreichbaren Ort und versuchen Sie es erneut." #~ msgid "Select a Folder" #~ msgstr "Ordner wählen" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Wählen Sie einen Bereich Ihres Bildschirms für die Aufnahme aus." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Unterstützt die freien Formate Matroska und WebM." #~ msgid "Open menu" #~ msgstr "Menü öffnen" #~ msgid "Show keyboard shortcuts" #~ msgstr "Tastaturkürzel anzeigen" #~ msgid "Toggle record" #~ msgstr "Aufnahme umschalten" #~ msgid "Toggle record pause" #~ msgstr "Aufnahmepause umschalten" #~ msgid "Cancel delay" #~ msgstr "Verzögerung abbrechen" #~ msgid "Toggle computer sounds" #~ msgstr "Computertöne umschalten" #~ msgid "Toggle microphone" #~ msgstr "Mikrofon umschalten" #~ msgid "Toggle pointer" #~ msgstr "Mauszeiger umschalten" #~ msgid "Delay" #~ msgstr "Verzögerung" #~ msgid "Video Format" #~ msgstr "Videoformat" #~ msgid "Save to…" #~ msgstr "Speichern unter…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Tastatürkürzel" #~ msgid "About Kooha" #~ msgstr "Über Kooha" #~ msgid "Sorry! An error has occured." #~ msgstr "Entschuldigung! Es ist ein Fehler aufgetreten." #~ msgid "Videos" #~ msgstr "Videos" #~ msgid "Select" #~ msgstr "Auswählen" #~ msgid "The recording has been saved in {saving_location}" #~ msgstr "Die Aufnahme wurde in {saving_location} gespeichert" #~ msgid "Inaccessible location '{directory}'" #~ msgstr "Unzugänglicher Speicherort „{directory}“" #~ msgid "Toggle capture mode" #~ msgstr "Aufnahmemodus umschalten" #~ msgid "Full Screen" #~ msgstr "Vollbild" #~ msgid "Processing" #~ msgstr "Verarbeitung" #~ msgid "Save location not set" #~ msgstr "Speicherort nicht festgelegt" #~ msgid "Recording cannot start" #~ msgstr "Aufnahme kann nicht gestartet werden" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "Der von Ihnen gewählte Speicherort wurde möglicherweise gelöscht." #~ msgid "The recording has been saved in" #~ msgstr "Die Aufnahme ist gespeichert worden in" #~ msgid "Record computer sounds" #~ msgstr "Computertöne aufnehmen" #~ msgid "Record from microphone" #~ msgstr "Mikrofon aufnehmen" #~ msgid "Show pointer" #~ msgstr "Mauszeiger anzeigen" #~ msgid "Elegantly record your screen " #~ msgstr "Elegant Ihren Bildschirm aufzeichnen " #~ msgid "Simple screen recorder" #~ msgstr "Einfache Bildschirmaufnahme" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Kooha ist eine einfache GTK-basierte Anwendung zur Bildschirmaufnahme. Es " #~ "ermöglicht Ihnen, Ihren Bildschirminhalt und auch Audio von Ihrem " #~ "Mikrofon oder Desktop aufzunehmen." SeaDve-Kooha-12ed227/po/el.po000066400000000000000000000425371505224011700156360ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Nikos , 2022. # Nikolaos Georgiou , 2022. # greek anon , 2023, 2024. # GiannosOB , 2025. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2025-04-22 18:25+0000\n" "Last-Translator: GiannosOB \n" "Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.11.1-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Κομψή καταγραφή οθόνης" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Μετάδοση;Εγγραφή;Οθόνη;Βίντεο;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Καταγράψτε την οθόνη σας εύκολα και απλά χωρίς περισπασμούς." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Το Kooha είναι ένα απλό καταγραφικό οθόνης με μινιμαλιστική διεπαφή. Απλώς " "κάνετε κλικ στο κουμπί εγγραφής χωρίς να χρειάζεται να διαμορφώσετε ένα σωρό " "ρυθμίσεις." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Τα κύρια χαρακτηριστικά του Kooha περιλαμβάνουν τα ακόλουθα:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" "🎙️ Εγγραφή μικροφώνου, ήχου επιφάνειας εργασίας ή και των δύο ταυτόχρονα" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Υποστήριξη για WebM, MP4, GIF και Matroska μορφές" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Επιλέξτε μια οθόνη ή ένα τμήμα της οθόνης για εγγραφή" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Ρυθμιζόμενη τοποθεσία αποθήκευσης, ορατότητα δείκτη, ρυθμός καρέ και " "καθυστέρηση" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Πειραματική κωδικοποίηση μέσω επιτάχυνσης υλικού" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Επιλογές εγγραφής και κουμπί για την έναρξη της εγγραφής" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Διάρκεια εγγραφής σε εξέλιξη και κουμπί για τη διακοπή της εγγραφής" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" "Αντίστροφη μέτρηση για την έναρξη της εγγραφής και κουμπί για την ακύρωση " "της εγγραφής" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Επιλέξτε Περιοχή" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Ακύρωση" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Ολοκληρώθηκε" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Επαναφορά Επιλογής" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Γενικά" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Καθυστέρηση (Δευτερόλεπτα)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Χρονικό διάστημα πριν από την έναρξη της εγγραφής" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Φάκελος Εγγραφών" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Φάκελος προορισμού για τις εγγραφές" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Βίντεο" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Μορφή" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Ρυθμός Καρέ" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Άνοιγμα Μενού" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Εμφάνιση Προτιμήσεων" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Εμφάνιση Συντομεύσεων" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Έξοδος" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Εγγραφή" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Μεταβολή εγγραφής" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Μεταβολή Παύσης" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Ακύρωση Εγγραφής" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Ρυθμίσεις" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Μεταβολή Ήχου Επιφάνειας Εργασίας" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Μεταβολή Μικροφώνου" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Μεταβολή Δείκτη" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Κυρίως Μενού" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Καταγράψτε μια Οθόνη ή ένα Παράθυρο" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Καταγράψτε μια Περιοχή της Οθόνης" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Ενεργοποίηση Ήχου Επιφάνειας Εργασίας" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Απενεργοποίηση Ήχου Επιφάνειας Εργασίας" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Ενεργοποίηση Μικροφώνου" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Απενεργοποίηση Μικροφώνου" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Εμφάνιση Δείκτη" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Απόκρυψη Δείκτη" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Έναρξη Εγγραφής" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Εγγραφή" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Ξέχνα Προηγουμένως Επιλεγμένες Πηγές Βίντεο" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Τέλος Εγγραφής" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Τέλος" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Παύση Εγγραφής" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Εγγραφή σε…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Ακύρωση Εγγραφής" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Εκκαθάριση…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Προτιμήσεις" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Συντομεύσεις Πληκτρολογίου" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Σχετικά με το Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "συντελεστές-μετάφρασης" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Δωρεά (Αγόρασέ μου έναν καφέ)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Μετάφραση" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Μετάδοση Οθόνης καταγράφηκε" #: src/application.rs:144 msgid "Show in Files" msgstr "Εμφάνιση σε Αρχεία" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Αποτυχία εύρεσης της προεπιλεγμένης συσκευής ήχου" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Βεβαιωθείτε ότι έχετε εγκαταστήσει το PulseAudio στο σύστημά σας." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Αυτή η μορφή είναι πειραματική και δεν υποστηρίζεται." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Κανένας" #: src/recording.rs:42 msgid "No active profile" msgstr "Κανένα ενεργό προφίλ" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Αποτυχία έναρξης εγγραφής" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Η επέκταση GStreamer ίσως δεν έχει εγκατασταθεί." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Βεβαιωθείτε ότι η τοποθεσία αποθήκευσης υπάρχει και είναι προσβάσιμη." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Παρουσιάστηκε σφάλμα κατά την εγγραφή" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Επιλέξτε Φάκελο Εγγραφών" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Απέτυχε η μεταβολή παύσης" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Αντιγραφή στο πρόχειρο" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Αντιγράφηκε στο πρόχειρο" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Εμφάνιση λεπτομερειών σφάλματος" #: src/window/mod.rs:289 msgid "Help" msgstr "Βοήθεια" #: src/window/mod.rs:294 #, fuzzy msgid "Ok, Got It" msgstr "Εντάξει, Κατάλαβα" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Άνοιγμα Προτιμήσεων;" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Η προηγουμένως επιλεγμένη μορφή ίσως δεν είναι διαθέσιμη. Ανοίξτε τις " "προτιμήσεις και επιλέξτε μια μορφή για συνέχιση εγγραφής." #: src/window/mod.rs:308 msgid "Later" msgstr "Αργότερα" #: src/window/mod.rs:310 msgid "Open" msgstr "Άνοιγμα" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "Σε παύση" #: src/window/mod.rs:546 msgid "Normal" msgstr "Κανονικό" #: src/window/mod.rs:547 msgid "Selection" msgstr "Επιλογή" #~ msgid "Failed to start device monitor" #~ msgstr "Αποτυχία εκκίνησης οθόνης συσκευής" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Αποτυχία σύνδεσης με διεργασία του PulseAudio" #~ msgid "No microphone source found" #~ msgstr "Δεν βρέθηκε πηγή μικροφώνου" #~ msgid "No desktop speaker source found" #~ msgstr "Δεν βρέθηκε πηγή ηχείων" #~ msgid "Ok" #~ msgstr "Εντάξει" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Αυτός ο ρυθμός καρέ ίσως προκαλέσει προβλήματα απόδοσης." #~ msgid "approx." #~ msgstr "περίπου" #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ Επιλέξτε μια οθόνη, ένα παράθυρο ή ένα τμήμα της οθόνης για εγγραφή" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Επιλογή πολλαπλών πηγών" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Πατήστε εδώ για να δείτε το βίντεο." #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Αποτυχία ανοίγματος αρχείου για γράψιμο" #~ msgid "Donate (Liberapay)" #~ msgstr "Δωρεά (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Δωρεά (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Δείτε στο {} για βοήθεια." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Αποτυχία ανοίγματος \"{}\" για γράψιμο" #~ msgid "_Cancel" #~ msgstr "_Ακύρωση" #~ msgid "_Select" #~ msgstr "_Επιλογή" #~ msgid "No folder selected" #~ msgstr "Δεν έχει επιλεγεί φάκελος" #~ msgid "Please choose a folder and try again." #~ msgstr "Παρακαλώ επιλέξτε φάκελο και δοκιμάστε ξανά." #~ msgid "Cannot access “{}”" #~ msgstr "Αδύνατη πρόσβαση στο “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Παρακαλώ επιλέξτε προσβάσιμη τοποθεσία και δοκιμάστε ξανά." SeaDve-Kooha-12ed227/po/eo.po000066400000000000000000000267261505224011700156430ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # telmo bruno silva seabra , 2021. # Dave Patrick , 2021. # Unai Hernández Minaberry , 2021. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2021-07-31 09:03+0000\n" "Last-Translator: telmo bruno silva seabra \n" "Language-Team: Esperanto \n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.7.2-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Elegante registri vian ekranon" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Ekranelsendi;Registrilo;Ekrano;Bildbendo;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha estas simpla ekranregistrilo kun minimumista interfaco. Vi povas nur " "alklaki la registran butonon sen devi agordi multajn reguligojn." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "La precipaj ebloj de Kooha inkludas la sekvantan:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Ĝenerala" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Lasi" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Registranti" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "" #: src/about.rs:50 msgid "Translate" msgstr "" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "" #: src/application.rs:144 msgid "Show in Files" msgstr "" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "" #: src/window/mod.rs:546 msgid "Normal" msgstr "" #: src/window/mod.rs:547 msgid "Selection" msgstr "" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Enkaptu vian ekranon sen iu malfacilaĵo." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Registru vian mikrofonon, komputerajn sonojn, aŭ ambaŭ sinkrone." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Agordu prokraston por pretigi antaŭ vi ekregistrus." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Kaŝi aŭ elmontri musan montrilon." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Elektu surdiskigan lokon por via registro." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Uzu helpa klavara kurtvojo." #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Elektu areon de vian ekranon por registri." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Subteno por la liberaj Matroska and WebM formatoj." #~ msgid "Open menu" #~ msgstr "Aperti menuon" #~ msgid "Show keyboard shortcuts" #~ msgstr "Elmontri klavarajn kurtvojojn" SeaDve-Kooha-12ed227/po/es.po000066400000000000000000000631361505224011700156430ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Óscar Fernández Díaz , 2021, 2022, 2024. # Roberto Bautista , 2021. # Juan David Sanchez Lean , 2021. # robert schneider , 2021. # Dave Patrick , 2021. # Pointify Starrcat , 2021. # Chardinson De la cruz Ventura , 2021. # Sergio Varela , 2022, 2024. # gallegonovato , 2023, 2024. # Adolfo Jayme Barrientos , 2023. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-09-28 15:15+0000\n" "Last-Translator: Óscar Fernández Díaz \n" "Language-Team: Spanish \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: Weblate 5.8-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Grabe su pantalla elegantemente" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Capturar pantalla;Grabador;Pantalla;Vídeo;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Capture su pantalla de forma intuitiva y directa, sin distracciones." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha es un grabador de pantalla simple con una interfaz minimalista. Pulse " "en el botón grabar sin tener que configurar un centenar de ajustes." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Las características principales de Kooha incluyen lo siguiente:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Graba el micrófono, el audio del escritorio, o ambos a la vez" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Compatibilidad con los formatos WebM, MP4, GIF y Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Seleccione un monitor o una parte de la pantalla para grabar" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Ubicación de guardado, visibilidad del puntero, tasa de fotogramas y " "retardo configurables" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Codificación experimental acelerada por hardware" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Opciones de grabación y botón para iniciar la grabación" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Duración de la grabación en curso y botón para detenerla" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "Cuenta atrás para iniciar la grabación y botón para cancelarla" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Seleccionar área" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Cancelar" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Hecho" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Reiniciar selección" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "General" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Retardo (segundos)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Intervalo de tiempo antes de que comience la grabación" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Carpeta de grabaciones" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Carpeta de destino de las grabaciones" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Vídeo" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Formato" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Tasa de fotogramas" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Abrir menú" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Mostrar preferencias" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Mostrar atajos" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Salir" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Grabando" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Conmutar grabación" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Conmutar pausa" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Cancelar el registro" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Ajustes" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Cambiar el audio del escritorio" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Conmutar micrófono" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Conmutar puntero" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Menú principal" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Capturar un monitor o una ventana" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Capturar una selección de la pantalla" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Activar el audio de escritorio" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Desactivar el audio del escritorio" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Activar micrófono" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Desactivar micrófono" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Mostrar puntero" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Ocultar puntero" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Iniciar grabación" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Grabar" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Olvidar las fuentes de vídeo previamente seleccionadas" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Detener grabación" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Detener" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Pausar grabación" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Grabando en…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Cancelar la grabación" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Purgando…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Preferencias" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "Atajos del _teclado" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Acerca de Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" "Óscar Fernández Díaz (oscfdezdz@tuta.io), Adolfo Jayme Barrientos " "(fitojb@ubuntu.com)" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Donar (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Traducir" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Grabación de pantalla finalizada" #: src/application.rs:144 msgid "Show in Files" msgstr "Mostrar en Archivos" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "No se ha encontrado el dispositivo de audio predeterminado" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Asegúrese de que tiene instalado PulseAudio en su sistema." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} hora" msgstr[1] "{time} horas" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minuto" msgstr[1] "{time} minutos" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} segundo" msgstr[1] "{time} segundos" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Error al configurar la carpeta de grabaciones" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Esta velocidad de fotogramas puede causar problemas de rendimiento en el " "formato seleccionado." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Este formato es experimental y no está soportado." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Ninguno" #: src/recording.rs:42 msgid "No active profile" msgstr "Ningún perfil activo" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "No se ha podido iniciar la grabación" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Consulta {link} para obtener ayuda." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Es posible que no esté instalado un plugin de GStreamer." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Asegúrese de que la ubicación de guardado existe y es accesible." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Se ha producido un error al grabar" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Error al abrir \"{path}\" para modificarlo" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Elegir carpeta de grabaciones" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Fallo al conmutar la pausa" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Hay una grabación en curso. Salir inmediatamente puede hacer que la " "grabación no se pueda reproducir. Por favor, detenga la grabación antes de " "salir." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Al salir se cancelará el procesamiento y puede que la grabación no se pueda " "reproducir." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "¿Salir de la aplicación?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Copiar al portapapeles" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Copiado al portapapeles" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Mostrar error detallado" #: src/window/mod.rs:289 msgid "Help" msgstr "Ayuda" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Vale, lo tengo" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "¿Abrir preferencias?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Es posible que el formato seleccionado anteriormente no esté disponible. " "Abra las preferencias y seleccione un formato para seguir grabando." #: src/window/mod.rs:308 msgid "Later" msgstr "Después" #: src/window/mod.rs:310 msgid "Open" msgstr "Abrir" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Grabación en curso" #: src/window/mod.rs:509 msgid "Paused" msgstr "En pausa" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Selección" #~ msgid "Failed to start device monitor" #~ msgstr "No se ha podido iniciar el seguimiento del dispositivo" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Fallo en la conexión con el demonio PulseAudio" #~ msgid "No microphone source found" #~ msgstr "No se ha encontrado la fuente del micrófono" #~ msgid "No desktop speaker source found" #~ msgstr "No se ha encontrado ninguna fuente de altavoces de sobremesa" #~ msgid "Ok" #~ msgstr "Vale" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Esta tasa de fotogramas puede causar problemas de rendimiento." #~ msgid "approx." #~ msgstr "aprox." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ Selecciona un monitor, una ventana o una parte de la pantalla para " #~ "grabar" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Selección de múltiples fuentes" #~ msgid "No Profile" #~ msgstr "Sin perfil" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Haga clic aquí para ver el vídeo." #~ msgid "Failed to select saving location" #~ msgstr "No se ha podido seleccionar la ubicación para el almacenamiento" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "No se ha podido abrir el archivo para escribir" #~ msgid "Failed to select folder" #~ msgstr "Error al seleccionar la carpeta" #~ msgid "Donate (Liberapay)" #~ msgstr "Donar (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Donar (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Consulte {} para obtener ayuda." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Fallo al abrir \"{}\" para escribir" #~ msgid "_Cancel" #~ msgstr "_Cancelar" #~ msgid "_Select" #~ msgstr "_Seleccionar" #~ msgid "No folder selected" #~ msgstr "No se ha seleccionado ninguna carpeta" #~ msgid "Please choose a folder and try again." #~ msgstr "Por favor, elija una carpeta e inténtelo de nuevo." #~ msgid "Cannot access “{}”" #~ msgstr "No se puede acceder a “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Por favor, elija un lugar accesible e inténtelo de nuevo." #~ msgid "Enable Desktop Sounds" #~ msgstr "Activar sonidos del escritorio" #~ msgid "Disable Desktop Sounds" #~ msgstr "Desactivar sonidos del escritorio" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Grabar su pantalla sin ninguna molestia." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Grabar su micrófono, los sonidos del sistema, o ambos al mismo tiempo." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Soporte para formatos WebM, MP4, GIF, y MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Selección de múltiples fuentes." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Codificación acelerada por hardware opcional" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Seleccionar un monitor o ventana para grabar." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "" #~ "🖼️ Crear una selección para capturar una área específica de su pantalla." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Seleccionar un retardo antes de empezar a grabar." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Ocultar o mostrar el puntero." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Seleccionar una ubicación para su grabación." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Usar los útiles atajos del teclado." #~ msgid "Toggle Computer Sounds" #~ msgstr "Conmutar sonidos del ordenador" #~ msgid "_Delay" #~ msgstr "_Retardo" #~ msgid "3 seconds" #~ msgstr "3 segundos" #~ msgid "5 seconds" #~ msgstr "5 segundos" #~ msgid "10 seconds" #~ msgstr "10 segundos" #~ msgid "_Video Format" #~ msgstr "_Formato de vídeo" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Guardar en…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Es posible que un plugin de GStreamer no esté instalado. Si está " #~ "instalado pero sigue sin funcionar correctamente, por favor informe a la " #~ "página de incidencias " #~ "de Kooha." #~ msgid "Record Computer Sounds" #~ msgstr "Grabar sonidos del ordenador" #~ msgid "Record From Microphone" #~ msgstr "Grabar desde el micrófono" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Cancelar retardo" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "¡Captura de pantalla grabada!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "La grabación se ha guardado en “{}”" #~ msgid "Open File" #~ msgstr "Abrir archivo" #~ msgid "Screencast Portal Request Error" #~ msgstr "Error de solicitud del portal de transmisión de pantalla" #~ msgid "Pipeline Build Error" #~ msgstr "Error de construcción de la tubería" #~ msgid "Recording Error" #~ msgstr "Error de grabación" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Asegúrese de comprobar las dependencias de tiempo de ejecución y la página No " #~ "funciona." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Asegúrese de que la ubicación de guardado existe o es accesible. Si " #~ "existe o es accesible, algo ha ido mal y, por favor, informe en la página de incidencias de " #~ "Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Asegúrese de que la ubicación de guardado existe. Si realmente existe, " #~ "algo ha ido mal y por favor informe a la página de incidencias de Kooha." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Es posible que un plugin de GStreamer no esté instalado. Si no es así, " #~ "por favor informe en la página de problemas de Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Asegúrese de que la ubicación de guardado existe. Si no es así, algo ha " #~ "ido mal y por favor informe en la página de problemas de Kooha." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "" #~ "Capture su pantalla de forma sencilla, indolora y sin distracciones." #~ msgid "" #~ "Make sure to check for the runtime dependencies and \"It Doesn't Work\" " #~ "page in Kooha's readme page. ({})" #~ msgstr "" #~ "Asegúrese de comprobar las dependencias de ejecución y la página \"No " #~ "funciona\" en la página readme de Kooha. ({})" #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's " #~ "issue page. ({})" #~ msgstr "" #~ "Es posible que el plugin de GStreamer no esté instalado. Si no es así, " #~ "por favor informe en la página de problemas de Kooha. ({})" #~ msgid "Screencast Portal Request Failed" #~ msgstr "Fallo en la solicitud del portal de transmisión de pantalla" #~ msgid "Recording Failed" #~ msgstr "Fallo en la grabación" #~ msgid "Pipeline Build Failed" #~ msgstr "La construcción de la pipeline ha fallado" #~ msgid "Sorry! An error has occurred." #~ msgstr "¡Ups! Ha ocurrido un error." #~ msgid "Please choose an accessible location and retry." #~ msgstr "Elige una ubicación accesible e intenta de nuevo." #~ msgid "Select a Folder" #~ msgstr "Elige una carpeta" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Selecciona un área de la pantalla para grabarla." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Soporte para los formatos libres Matroska y WebM." #~ msgid "Open menu" #~ msgstr "Abrir menú" #~ msgid "Show keyboard shortcuts" #~ msgstr "Mostrar atajos de teclado" #~ msgid "Toggle record" #~ msgstr "Alternar grabación" #~ msgid "Toggle record pause" #~ msgstr "Alternar la pausa de grabación" #~ msgid "Cancel delay" #~ msgstr "Cancelar retraso" #~ msgid "Toggle computer sounds" #~ msgstr "Activar o desactivar audio del dispositivo" #~ msgid "Toggle microphone" #~ msgstr "Activar o desactivar micrófono" #~ msgid "Toggle pointer" #~ msgstr "Activar o desactivar puntero" #~ msgid "Delay" #~ msgstr "Retraso" #~ msgid "Video Format" #~ msgstr "Formato de vídeo" #~ msgid "Save to…" #~ msgstr "Guardar en…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Atajos de teclado" #~ msgid "About Kooha" #~ msgstr "Acerca de Kooha" #~ msgid "Sorry! An error has occured." #~ msgstr "¡Lo siento! Se ha producido un error." #~ msgid "Videos" #~ msgstr "Vídeos" #~ msgid "Failed to create session." #~ msgstr "Error al crear la sesión." #~ msgid "Failed to select sources." #~ msgstr "Error al seleccionar las fuentes." #~ msgid "Select" #~ msgstr "Seleccionar" #~ msgid "Inaccessible location “{directory}”" #~ msgstr "Ruta inaccesible “{directory}”" #~ msgid "The recording has been saved in {saving_location}" #~ msgstr "La grabación se ha guardado en {saving_location}" #~ msgid "Inaccessible location '{directory}'" #~ msgstr "Ruta inaccesible '{directory}'" #~ msgid "Toggle capture mode" #~ msgstr "Cambiar modo de captura" #~ msgid "Full Screen" #~ msgstr "Pantalla completa" #~ msgid "Processing" #~ msgstr "Procesando" #~ msgid "Save location not set" #~ msgstr "No se estableció la ubicación de guardado" #~ msgid "Recording cannot start" #~ msgstr "No se puede iniciar la grabación" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "" #~ "Es posible que la ubicación de guardado seleccionada haya sido eliminada." #~ msgid "The recording has been saved in" #~ msgstr "La grabación se ha guardado en" #~ msgid "Record computer sounds" #~ msgstr "Grabar audio del dispositivo" #~ msgid "Record from microphone" #~ msgstr "Grabar audio del micrófono" #~ msgid "Show pointer" #~ msgstr "Mostrar puntero" #~ msgid "Elegantly record your screen " #~ msgstr "Graba tu pantalla elegantemente. " #~ msgid "Simple screen recorder" #~ msgstr "Grabador de pantalla simple" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Kooha es un simple grabador de pantalla hecho con GTK. Permite grabar la " #~ "pantalla y también grabar audio del micrófono o dispositivo." SeaDve-Kooha-12ed227/po/et.po000066400000000000000000000362401505224011700156400ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Henri , 2022. # Priit Jõerüüt , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-12-06 16:00+0000\n" "Last-Translator: Priit Jõerüüt \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.9-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Elegantselt salvesta ekraani" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Recorder;Screen;Video;ekraanisalvestus;salvestaja;ekraan;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Salvesta ekraani lihtsalt ja intuitiivselt ilma segajateta." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha on lihtne minimalistlik ekraanisalvestaja. Pole vaja seadistada, " "lihtsalt vajutad salvesta nupule." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Kooha põhifunktsioonid:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Salvesta heli mikrofonist, töölaualt või mõlemast korraga" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 WebM, MP4, GIF ja Matroska vormingute tugi" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Vali salvestatav monitor või ekraaniosa" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Seadistatav salvestuse asukoht, osutusseadme nähtavus, kaadrisagedus ja " "viivitus enne salvestamise alustamist" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Katseline võimalus kasutada raudvaralist kiirendamist kodeerimisel" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Salvestamise valikud ja nupp salvestuse alustamiseks" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Salvestamise vaade kestusega ja nupuga salvestuse lõpetamiseks" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" "Pöördloendus salvestuse alguseni ning nupp, mis võimaldab tühistada " "salvestamise" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Vali ekraaniala" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Tühista" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Valmis" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Lähtesta valik" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Üldised seadistused" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Viivitus (sekundites)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Viivitus enne salvestamise algust" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Salvestuste kaust" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Kaust, kuhu soovid salvestused lisada" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Videoseadistused" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Vorming" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Kaadrisagedus" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Ava menüü" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Näita eelistusi" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Näita kiirklahve" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Välju" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Salvestame" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Lülita salvestamine sisse/välja" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Lülita paus sisse/välja" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Katkesta salvestamine" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Seadistused" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Lülita töölaua heli salvestamine sisse/välja" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Lülita mikrofon sisse/välja" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Lülita ostutusseadme salvestamine sisse/välja" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Põhimenüü" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Salvesta monitori või akna vaade" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Salvesta valitud ala ekraanilt" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Lülita töölaua heli salvestamine sisse" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Lülita töölaua heli salvestamine välja" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Lülita mikrofon sisse" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Lülita mikrofon välja" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Näita osutusseadet" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Peaida osutusseade" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Alusta salvestamist" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Salvesta" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Unusta eelnevalt valitud videoallikad" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Lõpeta salvestamine" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Peata" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Peata salvestamine" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Salvestus algab…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Katkesta salvestamine" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Eemaldame…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Eelistused" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Kiirklahvid" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Teave" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Henri " #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Toeta meid (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Tõlgi" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Ekraanisalvestus on tehtud" #: src/application.rs:144 msgid "Show in Files" msgstr "Näita failides" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Vaikimisi heliseadet ei õnnestunud leida" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" "Palun kontrolli, et PulseAudio oleks sinu arvutis või nutiseadmes olemas." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} tund" msgstr[1] "{time} tundi" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minut" msgstr[1] "{time} minutit" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} sekund" msgstr[1] "{time} sekundit" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Salvestuste kausta määramine ei õnnestunud" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Niisuguse kaadrisageduse puhul võib antud vormingu puhul tekkida " "jõudlusprobleeme." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "See vorming on katseline ning mittetoetatud." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Pole" #: src/recording.rs:42 msgid "No active profile" msgstr "Aktiivset profiili ei leidu" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Ei õnnestunud alustada salvestamist" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Abiteavet leiad siit lehelt: {link}" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "GStreameri lisamoodul on ilmselt paigaldamata." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Palun kontrolli, et salvestuse kaust on olemas ja ligipääsetav." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Salvestamisel tekkis viga" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "„{path}“ avamine salvestamiseks ei õnnestunud" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Vali salvestusasukoha kaust" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Pausi sisse- või väljalülitamine ei õnnestunud" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Salvestamine on hetkel pooleli. Kui lõpetad rakenduse töö kohe, siis " "videofail ei pruugi jääda kasutatavaks. Palun esmalt lõpeta salvestamine ja " "siis välju rakendusest." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Kui lõpetad rakenduse töö, siis katkeb ka videofaili kodeerimine ning " "salvestis võib muutuda kõlbmatuks." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Kas soovid väljuda rakendusest?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Kopeeri lõikelauale" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Kopeeritud lõikelauale" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Näita üksikasjalikku veateavet" #: src/window/mod.rs:289 msgid "Help" msgstr "Abiteave" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Selge, sain aru" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Kas avame eelistused?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Varemvalitud vorming ilmselt pole enam saadaval. Palun ava eelistused ja " "salvestamise jätkamiseks vali uus vorming." #: src/window/mod.rs:308 msgid "Later" msgstr "Hiljem" #: src/window/mod.rs:310 msgid "Open" msgstr "Ava" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Salvestamine on pooleli" #: src/window/mod.rs:509 msgid "Paused" msgstr "Peatatud" #: src/window/mod.rs:546 msgid "Normal" msgstr "Tavaline" #: src/window/mod.rs:547 msgid "Selection" msgstr "Valik" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Salvesta ekraani ilma vaevata." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Lindista mikrofonist, arvutist või mõlemad samal ajal." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 WebM, MP4, GIF ja MKV tugi." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Vali mitmetest allikatest." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Valikuline riistvara kiirendatud kodeerimine" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Vali monitor või aken, mida salvestada." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Vali ala, mida salvestada ekraanilt." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Seadista viivitus, enne kui hakkad salvestama." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Peida või näita kursorit." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Vali salvestuse salvestamisasukoht." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Kasuta kasulikke kiirklahve." #~ msgid "_Delay" #~ msgstr "_Viivitus" #~ msgid "5 seconds" #~ msgstr "5 sekundit" #~ msgid "10 seconds" #~ msgstr "10 sekundit" #~ msgid "_Video Format" #~ msgstr "_Video formaat" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Salvesta asukohta…" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Tühista viivitus" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Autoriõigus 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Salvestus lindistatud!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Salvestati \"{}\" kausta" #~ msgid "Open File" #~ msgstr "Ava fail" #~ msgid "Screencast Portal Request Error" #~ msgstr "Salvestuse portaali viga" SeaDve-Kooha-12ed227/po/eu.po000066400000000000000000000550071505224011700156430ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Sergio Varela , 2021, 2022. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2022-10-26 20:07+0000\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: Weblate 4.14.2-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Grabatu zure pantaila dotoretasunez" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Grabatzailea;Pantaila;Bideoa;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "Grabatu zure pantaila modu intuitiboan eta zuzenean distrakziorik gabe." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha interfaze minimalista duen pantaila-grabagailu sinple bat da. Nahikoa " "da grabatzeko botoian klik egitea, doikuntza pila bat konfiguratu behar izan " "gabe." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Kooharen ezaugarri nagusiak hauek dira:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Grabatu mikrofonoa, mahaigaineko audioa edo biak batera" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Bateragarritasuna WebM, MP4, GIF eta Matroska formatuekin" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Gordetzearen konfiguragarrien kokapena, punteroaren ikuspena, fotogramen " "tasa eta atzerapenak" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Hardware bidezko kodetze esperimental azeleratua" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Aukeratu arloa" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Ezeztatu" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Eginda" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Berrabiarazi hautaketa" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Orokorra" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Atzerapena (segundoak)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Grabazioen karpeta" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Bideoa" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Formatua" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Fotogramen tasa" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Ireki menua" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Erakutsi ezarpenak" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Erakutsi sarbide zuzenak" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Utzi" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Grabatzen" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Txandakatu grabazioa" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Txandakatu etenaldia" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Bertan behera utzi grabazioa" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Doikuntzak" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Mahaigaineko audioa aldatu" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Mikrofonoa txandakatu" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Txandakatu punteroa" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Menu nagusia" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Monitore bat edo leiho bat harrapatu" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Pantaila-aukera bat atzeman" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Mahaigaineko audioa aktibatu" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Desaktibatu mahaigaineko audioa" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Aktibatu mikrofonoa" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Desaktibatu mikrofonoa" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Erakutsi punteroa" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Ezkutatu sagua" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Hasi grabatzen" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Grabatu" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Aurretik hautatutako bideo-iturriak ahaztu" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Gelditu grabazioa" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Gelditu" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Gelditu grabazioa" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Grabatzen…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Bertan behera utzi grabazioa" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Purgatzen…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Ezarpenak" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Teklatu-lasterbideak" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Koohari buruz" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Sergio Varela" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Itzuli" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Pantailaren grabazioa amaituta" #: src/application.rs:144 msgid "Show in Files" msgstr "Artxiboetan erakutsi" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Ziurtatu PulseAudio instalatuta duzula zure sisteman." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Formatu hau esperimentala da eta ezin da jasan." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Bat ere ez" #: src/recording.rs:42 msgid "No active profile" msgstr "Ez dago profil aktiborik" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Ezin izan da grabazioa hasi" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Baliteke GStreamer plugin bat instalatuta ez egotea." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Ziurtatu gordelekua existitzen dela eta irisgarria dela." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Errorea gertatu da grabatzean" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Aukeratu grabazioen karpeta" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Akatsa etenaldia kommutatzean" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Kopiatu paper-zorroan" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Paper-zorroan kopiatuta" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Errore zehatza erakutsi" #: src/window/mod.rs:289 msgid "Help" msgstr "Laguntza" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Ezarpenak ireki?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Baliteke aurretik hautatutako formatua eskuragarri ez egotea. Ireki " "ezarpenak eta aukeratu formatu bat grabatzen jarraitzeko." #: src/window/mod.rs:308 msgid "Later" msgstr "Geroago" #: src/window/mod.rs:310 msgid "Open" msgstr "Ireki" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "Pausatua" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normala" #: src/window/mod.rs:547 msgid "Selection" msgstr "Selekzio-eremua" #~ msgid "Failed to start device monitor" #~ msgstr "Ezin izan da sistemaren monitorea hasi" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Akatsa PulseAudio deabruarekiko konexioan" #~ msgid "No microphone source found" #~ msgstr "Mikrofonoaren iturria ez da aurkitu" #~ msgid "No desktop speaker source found" #~ msgstr "Ez da mahaigaineko bozgorailu-iturririk aurkitu" #~ msgid "Ok" #~ msgstr "Ados" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Fotogramen tasa horrek errendimendu-arazoak eragin ditzake." #~ msgid "approx." #~ msgstr "gutxi gorabehera" #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ Aukeratu monitore bat, leiho bat edo pantailaren zati bat grabatzeko" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Hainbat iturri hautatu" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Egin klik hemen bideoa ikusteko." #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Ezin izan da artxiboa ireki idazteko" #~ msgid "Donate (Liberapay)" #~ msgstr "Dohaintza (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Dohaintza (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Kontsultatu {} laguntza lortzeko." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Errorea idazteko \"{}\" irekitzean" #~ msgid "_Cancel" #~ msgstr "_Ezeztatu" #~ msgid "_Select" #~ msgstr "_Aukeratu" #~ msgid "No folder selected" #~ msgstr "Ez da karpetarik hautatu" #~ msgid "Please choose a folder and try again." #~ msgstr "Mesedez, aukeratu karpeta bat eta saiatu berriro." #~ msgid "Cannot access “{}”" #~ msgstr "Ezin da “{}”-ra sartu" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Mesedez, aukeratu leku irisgarri bat eta saiatu berriro." #~ msgid "Enable Desktop Sounds" #~ msgstr "Mahaigaineko soinuak aktibatu" #~ msgid "Disable Desktop Sounds" #~ msgstr "Mahaigaineko soinuak desaktibatu" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Kapturatu pantaila arazorik gabe." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Grabatu zure mikrofonoa, ordenagailuko soinuak edo biak batera." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 WebM, MP4, GIF eta MKV formatuetarako euskarria." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Hainbat iturrien hautaketa." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Hardware bidezko kodetze azeleratua, aukerakoa" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Grabatzeko monitore edo leiho bat hautatu." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Jarri aukera bat zure pantailako eremu jakin bat hartzeko." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Grabatzen hasi aurretik prestatzeko atzerapena ezarri." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Saguaren erakuslea ezkutatu edo erakutsi." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Aukeratu grabazioa gordetzeko kokaleku bat." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Teklatu-lasterbideak erabili." #~ msgid "Toggle Computer Sounds" #~ msgstr "Ordenagailuko soinuak txandakatu" #~ msgid "_Delay" #~ msgstr "_Atzerapena" #~ msgid "3 seconds" #~ msgstr "3 segundo" #~ msgid "5 seconds" #~ msgstr "5 segundo" #~ msgid "10 seconds" #~ msgstr "10 segundo" #~ msgid "_Video Format" #~ msgstr "_Bideo-formatua" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Gorde hemen…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Baliteke GStreamer-en plugin bat instalatuta ez egotea. Instalatuta " #~ "badago baina behar bezala funtzionatzen ez badu, jakinarazi, mesedez, Kooha intzidentzia-" #~ "orrian." #~ msgid "Record Computer Sounds" #~ msgstr "Ordenagailu-soinuak grabatu" #~ msgid "Record From Microphone" #~ msgstr "Mikrofonotik grabatu" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Atzerapena bertan behera utzi" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright © 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Pantaila grabatua atzematea!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Grabazioa “{}” -n gorde da" #~ msgid "Open File" #~ msgstr "Ireki artxiboa" #~ msgid "Screencast Portal Request Error" #~ msgstr "Errorea screencast atariko eskaeran" #~ msgid "Pipeline Build Error" #~ msgstr "Errorea pipelina eraikitzean" #~ msgid "Recording Error" #~ msgstr "Grabazio-errorea" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Egiaztatu exekuzio-denbora eta orrialdea ez dabil ." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Ziurtatu gordelekua badagoela edo irisgarria dela. Eskuragarri badago edo " #~ "zerbait gaizki joan bada, mesedez, jakinarazi hemen: Kooharen gorabeheren orrialdea." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Ziurtatu gordetzearen kokalekua existitzen dela. Benetan existitzen bada, " #~ "zerbait gaizki joan da eta, mesedez, jakinarazi helbide honetara: Kooha intzidentzien " #~ "orria." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Baliteke GStreamer-en plugin bat instalatuta ez egotea. Hala ez bada, " #~ "jakinarazi, mesedez, " #~ "Kooha problemen orria ." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Ziurtatu gordetzearen kokalekua existitzen dela. Hala ez bada, zerbait " #~ "gaizki joan da, eta, mesedez, jakinarazi honi: Kooharen arazoen orria." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "Hartu pantaila zuzenean eta alperrik, distrakziorik gabe." #~ msgid "" #~ "Make sure to check for the runtime dependencies and \"It Doesn't Work\" " #~ "page in Kooha's readme page. ({})" #~ msgstr "" #~ "Egiaztatu exekuzio-gelak eta \"ez dabil\" orrialdea Kooharen readme " #~ "orrian. ({})" #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's " #~ "issue page. ({})" #~ msgstr "" #~ "Baliteke GStreamer-en plugina instalatuta ez egotea. Hala ez bada, " #~ "jakinarazi, mesedez, Kooharen arazoen orrialdean. ({})" #~ msgid "Screencast Portal Request Failed" #~ msgstr "Akatsa screencast atariaren eskaeran" #~ msgid "Recording Failed" #~ msgstr "Grabazioak huts egin du" #~ msgid "Pipeline Build Failed" #~ msgstr "Oliobidearen eraikuntzak porrot egin du" #~ msgid "Please choose an accessible location and retry." #~ msgstr "Mesedez, aukeratu leku irisgarri bat eta saiatu berriro." #~ msgid "Select a Folder" #~ msgstr "Aukeratu karpeta bat" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Aukeratu zure pantailako eremu bat, grabatzeko." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Matroska eta WebM formatu libreetarako euskarria." #~ msgid "Open menu" #~ msgstr "Ireki menua" #~ msgid "Show keyboard shortcuts" #~ msgstr "Erakutsi teklatu-lasterbideak" #~ msgid "Toggle record" #~ msgstr "Txandakatu grabazioa" #~ msgid "Toggle record pause" #~ msgstr "Aktibatu grabazio-etenaldia" #~ msgid "Cancel delay" #~ msgstr "Atzerapena bertan behera utzi" #~ msgid "Toggle computer sounds" #~ msgstr "Ordenagailuko soinuak txandakatu" #~ msgid "Toggle microphone" #~ msgstr "Mikrofonoa txandakatu" #~ msgid "Toggle pointer" #~ msgstr "Punteroa aktibatu edo desaktibatu" #~ msgid "Delay" #~ msgstr "Atzerapena" #~ msgid "Video Format" #~ msgstr "Bideo formatua" #~ msgid "Save to…" #~ msgstr "Gorde hemen…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Teklatu-lasterbideak" #~ msgid "About Kooha" #~ msgstr "Koohari buruz" #~ msgid "Sorry! An error has occured." #~ msgstr "Barkatu! Errore bat gertatu da." #~ msgid "Videos" #~ msgstr "Bideoak" #~ msgid "Failed to create session." #~ msgstr "Saioa sortzean huts egin da." #~ msgid "Failed to select sources." #~ msgstr "Akatsak iturriak hautatzean." #~ msgid "Select" #~ msgstr "Hautatu" #~ msgid "Inaccessible location “{directory}”" #~ msgstr "Kokapen irisgaitza: “{directory}”" #~ msgid "The recording has been saved in {saving_location}" #~ msgstr "Grabazioa hemen gorde da: {saving_location}" #~ msgid "Toggle capture mode" #~ msgstr "Txandakatu kapturatzeko modua" #~ msgid "Full Screen" #~ msgstr "Pantaila osoa" #~ msgid "Processing" #~ msgstr "Prozesatzen" #~ msgid "Save location not set" #~ msgstr "Ez da konfiguratu gordetzearen kokapena" #~ msgid "Recording cannot start" #~ msgstr "Ezin da grabatzen hasi" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "Baliteke aukeratutako gordetze-kokapena ezabatu izana." #~ msgid "The recording has been saved in" #~ msgstr "Grabazioa hemen gorde da" SeaDve-Kooha-12ed227/po/fa.po000066400000000000000000000507601505224011700156210ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # سهیل خانعلی‌پور , 2021. # Soheil Khanalipur , 2021. # عبدالرئوف عابدی , 2021. # MSKF , 2021, 2022. # MohammadSaleh Kamyab , 2022. # MohammadSaleh Kamyab , 2023. # qqqq1 , 2023. # Sadjad Abedi , 2023. # Amirmatin Roosta , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-12-29 07:04+0000\n" "Last-Translator: Amirmatin Roosta \n" "Language-Team: Persian \n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.10-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "کوها" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "صفحه‌نمایش خود را با ظرافت ضبط کنید" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "اسکرین‌کست;ضبط;صفحه‌نمایش;ویدیو;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "صفحه‌نمایش خود را به صورت شهودی و سرراست و بدون حواس‌پرتی ضبط کنید." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "کوها یک ضبط کنندهٔ صفحه‌نمایش با رابطی کمینه‌گراست. فقط لازم است روی دکمهٔ ضبط " "کلیک کنید؛ بدون نیاز به پیکربندی هیچ تنظیماتی." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "قابلیت‌های اصلی کوها عبارتند از:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ ضبط میکروفن، صدای سیستم، یا هر دو در یک زمان" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 پشتیبانی از قالب‌های WebM، ‏MP4، ‏GIF و Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "مانیتور یا قسمتی از صفحه را برای ضبط انتخاب کنید" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "🛠️ قابلیت پیکربندی مکان ذخیره، پدیداری اشاره‌گر، نرخ قاب، و تأخیر" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 کدبندی شتاب‌یافتهٔ سخت‌افزاری آزمایشی" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "گزینه‌های ضبط و دکمه برای شروع ضبط" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "مدت زمان ضبط در حال انجام و دکمه برای توقف ضبط" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "شمارش معکوس برای شروع ضبط و دکمه برای لغو ضبط" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "انتخاب ناحیه" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "لغو" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "انجام شد" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "بازنشانی انتخاب" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "اصلی" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "تأخیر (ثانیه)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "فاصله زمانی قبل از شروع ضبط" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "پوشهٔ ضبط‌ها" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "پوشه مقصد برای فایل های ضبط‌ شده" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "ویدیو" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "قالب" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "نرخ فریم" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "باز کردن منو" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "نمایش تنظیمات" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "نمایش میان‌برها" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "خروج" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "در حال ضبط" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "تغییر حالت ضبط" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "تغییر حالت مکث" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "لغو ضبط" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "تنظیمات" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "تغییر حالت صدای میزکار" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "تغییر حالت میکروفن" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "تغییر حالت ماوس" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "منوی اصلی" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "ضبط یک نمایشگر یا پنجره" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "ضبط یک ناحیه از صفحه‌نمایش" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "فعال بودن صدای سیستم" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "غیرفعال کردن صدای سیستم" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "فعال کردن میکروفن" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "غیرفعال کردن میکروفن" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "نمایش ماوس" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "مخفی بودن ماوس" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "شروع ضبط" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "ضبط" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "فراموشی منابع ویدیوی قبلا انتخاب شده" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "توقف ضبط" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "توقف" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "مکث ضبط" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "ضبط در…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "لغو ضبط کردن" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "تراز کردن…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_ تنظیمات" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_ میان‌برهای کیبورد" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_دربارهٔ کوها" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "محمدصالح کامیاب" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "گیت‌هاب" #: src/about.rs:50 msgid "Translate" msgstr "ترجمه" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "صفحه ضبط شد" #: src/application.rs:144 msgid "Show in Files" msgstr "نمایش در فایل‌ها" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "مطمئن شوید PulseAudio روی سیستم شما نصب شده است." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "این فرمت آزمایشی است و پشتیبانی نمیشود." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "هیچ‌کدام" #: src/recording.rs:42 msgid "No active profile" msgstr "بدون نمایهٔ فعال" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "شروع ضبط ناموفق بود" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "احتمالا افزونه GStreamer نصب نشده است." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "مطمئن شوید مکان ذخیره وجود دارد و دستری‌پذیر است." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "هنگام ضبط خطایی رخ داد" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "انتخاب پوشهٔ ضبط" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "خطا در تغییر حالت مکث" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "کپی به کلیپ‌بورد" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "در حافظه کپی شد" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "نمایش خطای باجزئیات" #: src/window/mod.rs:289 msgid "Help" msgstr "راهنما" #: src/window/mod.rs:294 #, fuzzy msgid "Ok, Got It" msgstr "اوکی، بریم سراغش" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "بازکردن تنظیمات؟" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "قالب قبلاً گزیده شده شاید موجود نباشد. برای ادامه، ترجیحات را باز کنید و یک " "قالب برگزینید." #: src/window/mod.rs:308 msgid "Later" msgstr "بعدا" #: src/window/mod.rs:310 msgid "Open" msgstr "بازکردن" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "مکث شده" #: src/window/mod.rs:546 msgid "Normal" msgstr "معمولی" #: src/window/mod.rs:547 msgid "Selection" msgstr "انتخاب" #~ msgid "Failed to start device monitor" #~ msgstr "شروع ضبط مانیتور ناموفق بود" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "اتصال به PulseAudio ناموفق بود" #~ msgid "No microphone source found" #~ msgstr "هیچ میکروفنی پیدا نشد" #~ msgid "No desktop speaker source found" #~ msgstr "هیچ منبع بلندگوی میزکاری پیدا نشد" #~ msgid "Ok" #~ msgstr "تایید" #~ msgid "This frame rate may cause performance issues." #~ msgstr "این نرخ فریم ممکن است باعث مشکل پردازش شود." #~ msgid "approx." #~ msgstr "تقریباً." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ گزینش یک نمایشگر، پنجره یا بخشی از صفحه‌نمایش برای ضبط" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 گزینش چندین منبع" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "برای دیدن ویدیو اینجا بزنید." #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "شکست در گشودن پرونده برای نوشتن" #~ msgid "Donate (Liberapay)" #~ msgstr "حمایت (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "حمایت (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "برای راهنمایی {} را بررسی کنید." #~ msgid "Failed to open “{}” for writing" #~ msgstr "در پوشه «{}» امکان ذخیره وجود ندارد" #~ msgid "_Cancel" #~ msgstr "_لغو" #~ msgid "_Select" #~ msgstr "_ انتخاب" #~ msgid "No folder selected" #~ msgstr "پوشه‌ای انتخاب نشده" #~ msgid "Please choose a folder and try again." #~ msgstr "لطفاً پوشه‌ای انتخاب، و دوباره تلاش کنید." #~ msgid "Cannot access “{}”" #~ msgstr "دسترسی به «{}» ممکن نیست" #~ msgid "Please choose an accessible location and try again." #~ msgstr "لطفاً مکانی دسترسی‌پذیر انتخاب، و دوباره تلاش کنید." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 ضبط صفحه‌نمایش‌تان بدون هیچ عذابی." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ ضبط میکروفون‌تان، صداهای رایانه، یا هر دو در یک زمان." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 پشتیبانی از قالب‌های WebM، ‏MP4، ‏GIF، و MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 گزینش چندین منبع." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 کدبندی شتاب‌یافتهٔ سخت‌افزاری اختیاری" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ گزینش یک صفحه‌نمایش یا پنجره برای ضبط." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ ایجاد یک گزینش برای ضبط ناحیهٔ معیّن از صفحه‌نمایش‌تان." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ تنظیم تأخیر برای آمادگی قبل از شروع ضبط." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ پنهان یا نمایان کردن نشانگر موشی." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 انتخاب یک مکان برای ذخیرهٔ ضبط‌هایتان." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ استفاده از میان‌برهای صفحه‌کلید کارآمد." #~ msgid "Toggle Computer Sounds" #~ msgstr "تغییر حالت دکمهٔ صداهای رایانه" #~ msgid "_Delay" #~ msgstr "_تأخیر" #~ msgid "5 seconds" #~ msgstr "۵ ثانیه" #~ msgid "10 seconds" #~ msgstr "۱۰ ثانیه" #~ msgid "_Video Format" #~ msgstr "_قالب ویدیو" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_ذخیره در…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "شاید افزایهٔ جی‌استریمری نصب نشده باشد. اگر نصب شده ولی همچنان درست کار " #~ "نمی‌کند، لطفاً به صفحهٔ " #~ "اشکالات کوها گزارش کنید." #~ msgid "Record Computer Sounds" #~ msgstr "ضبط صداهای رایانه" #~ msgid "Record From Microphone" #~ msgstr "ضبط از میکروفن" #~ msgid "Dave Patrick" #~ msgstr "دِیو پاتریک" #~ msgid "Cancel Delay" #~ msgstr "لغو تأخیر" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "حق رونوشت ۲۰۲۱ دِیو پاتریک" #~ msgid "Screencast Recorded!" #~ msgstr "ضبط انجام شد!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "ضبط در «{}» ذخیره شده است" #~ msgid "Open File" #~ msgstr "گشودن پرونده" #~ msgid "Screencast Portal Request Error" #~ msgstr "خطای درخواست درگاه ضبط صفحه‌نمایش" #~ msgid "Pipeline Build Error" #~ msgstr "خطای لوله‌کشی" #~ msgid "Recording Error" #~ msgstr "خطای ضبط" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "حتماً وابستگی‌های اجرا و صفحهٔ این کار نمی‌کند را بررسی کنید." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "مطمئن شوید که مکان ذخیره‌سازی وجود دارد یا در دسترس است. اگر وجود دارد یا " #~ "در دسترس است، چیزی اشتباه شده و لطفاً به صفحهٔ اشکالات کوها گزارش کنید." #~ msgid "Full Screen" #~ msgstr "سَرتاسَر" SeaDve-Kooha-12ed227/po/fi.po000066400000000000000000000514011505224011700156220ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Jiri Grönroos , 2021, 2022, 2023, 2024, 2025. # Jan Kuparinen , 2021. # Ricky Tigg , 2022, 2025. # Jiri Nakola , 2023. # Linus Virtanen , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2025-04-06 18:23+0000\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.11-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Tallenna näyttösi tapahtumat" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Recorder;Screen;Video;tallennin;nauhoitus;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "Kaappaa näyttösi sisältö intuitiivisella ja suoraviivaisella tavalla ilman " "häiriötekijöitä." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha on yksinkertainen sovellus, jonka avulla voit nauhoittaa näytölläsi " "tapahtuvat asiat. Napsauta vain nauhoituspainiketta ja vältä lukuisten " "asetusten kanssa säätäminen." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Koohan keskeisimmät ominaisuudet:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" "🎙️ Tallenna ääntä mikrofonista, työpöydän äänilähteestä tai molemmista " "samanaikaisesti" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Tiedostomuototuki WebM, MP4, GIF ja Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Valitse näyttö tai alue näytöltä tallennettavaksi" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Mukautettava tallennussijainti, osoittimen näkyvyys, kuvanopeus ja viive" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Kokeellinen laitteistokiihdytetty enkoodaus" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Tallennuksen vaihtoehdot ja painike joka aloittaa tallennuksen" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" "Toimessa olevan tallennuksen kesto ja painike joka lopettaa tallennuksen" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" "Lähtölaskenta tallennuksen aloittamiseen ja painike tallentamisen " "peruuttamiseksi" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Valitse alue" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Peru" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Valmis" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Nollaa valinta" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Yleiset" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Viive (sekuntia)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Viive ennen tallennuksen aloittamista" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Tallenteet-kansio" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Tallenteiden kohdekansio" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Muoto" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Kuvataajuus" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Avaa valikko" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Näytä asetukset" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Näytä pikanäppäimet" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Lopeta" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Nauhoitetaan" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Nauhoitus päälle/pois" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Keskeytys päälle/pois" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Peru nauhoitus" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Asetukset" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Työpöydän ääni päälle/pois" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Mikrofoni päälle/pois" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Osoitin päälle/pois" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Päävalikko" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Kaappaa näyttö tai ikkuna" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Kaappaa valittu alue näytöltä" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Käytä työpöydän ääntä" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Poista käytöstä työpöydän ääni" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Käytä mikrofonia" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Poista käytöstä mikrofoni" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Näytä osoitin" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Piilota osoitin" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Aloita nauhoitus" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Nauhoita" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Unohda aiemmin valitut videolähteet" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Lopeta nauhoitus" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Pysäytä" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Keskeytä nauhoitus" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Nauhoitus alkaa…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Peru nauhoitus" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Tyhjennetään…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Asetukset" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Pikanäppäimet" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Tietoja - Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Jiri Grönroos" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Lahjoita (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Käännä" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Näyttötallenne nauhoitettu" #: src/application.rs:144 msgid "Show in Files" msgstr "Näytä tiedostonhallinnassa" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Oletusarvoisen äänilaitteen löytäminen epäonnistui" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Varmista, että PulseAudio on asennettu järjestelmään." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} tunti" msgstr[1] "{time} tuntia" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minuutti" msgstr[1] "{time} minuuttia" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} sekunti" msgstr[1] "{time} sekuntia" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Tallenteiden kansion asettaminen epäonnistui" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Tämä kuvanopeus saattaa aiheuttaa suorituskykyongelmia valitun " "tiedostomuodon kohdalla." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Tämä muoto on kokeellinen eikä sille tarjota tukea." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Ei mitään" #: src/recording.rs:42 msgid "No active profile" msgstr "Ei aktiivista profiilia" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Nauhoituksen aloitus epäonnistui" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Lue {link} saadaksesi tukea." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "GStreamer-liitännäistä ei välttämättä ole asennettu." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" "Varmista, että tallennuksen sijainti on olemassa ja se on käytettävissä." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Virhe nauhoituksen aikana" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Polun “{path}” avaaminen kirjoitusta varten epäonnistui" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Valitse nauhoitusten kansio" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Keskeytys epäonnistui" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Tallennus on kesken. Välitön lopettaminen saattaa aiheuttaa sen, ettei " "tallenne ole toistettavissa. Pysäytä tallennus ennen lopettamista." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Lopettaminen peruu käsittelyn ja saattaa aiheuttaa sen, ettei tallenne ole " "toistettavissa." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Lopetetaanko sovellus?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Kopioi leikepöydälle" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Kopioitu leikepöydälle" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Näytä virhe yksityiskohtineen" #: src/window/mod.rs:289 msgid "Help" msgstr "Ohje" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Selvä" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Avataanko asetukset?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Aiemmin valittu muoto ei mahdollisesti ole käytettävissä. Avaa asetukset ja " "valitse muoto jatkaaksesi tallennusta." #: src/window/mod.rs:308 msgid "Later" msgstr "Myöhemmin" #: src/window/mod.rs:310 msgid "Open" msgstr "Avaa" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Tallennus on käynnissä" #: src/window/mod.rs:509 msgid "Paused" msgstr "Tauotettu" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normaali" #: src/window/mod.rs:547 msgid "Selection" msgstr "Valinta" #~ msgid "Failed to start device monitor" #~ msgstr "Laitemonitorin käynnistäminen epäonnistui" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "PulseAudio-taustaosaan yhdistäminen epäonnistui" #~ msgid "No microphone source found" #~ msgstr "Mikrofonilähdettä ei löydy" #~ msgid "No desktop speaker source found" #~ msgstr "Työpöydän kaiutinlähdettä ei löydy" #~ msgid "Ok" #~ msgstr "OK" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Tämä kuvataajuus voi aiheuttaa suorituskykyongelmia." #~ msgid "approx." #~ msgstr "noin." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ Valitse tallennettavaksi koko näytön sisältö, ikkuna tai alue näytöltä" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Useiden lähteiden valinta" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Napsauta nähdäksesi videon." #~ msgid "Failed to select saving location" #~ msgstr "Tallennuskohteen valitseminen epäonnistui" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Tiedoston avaus kirjoitusta varten epäonnistui" #~ msgid "Failed to select folder" #~ msgstr "Kansion valitseminen epäonnistui" #~ msgid "Donate (Liberapay)" #~ msgstr "Lahjoita (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Lahjoita (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Katso ohjeita {}." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Ei voitu avata “{}” kirjoitusta varten" #~ msgid "_Cancel" #~ msgstr "_Peru" #~ msgid "_Select" #~ msgstr "_Valitse" #~ msgid "No folder selected" #~ msgstr "Kansiota ei ole valittu" #~ msgid "Please choose a folder and try again." #~ msgstr "Valitse toinen kansio ja yritä uudelleen." #~ msgid "Cannot access “{}”" #~ msgstr "Ei pääsyä kohteeseen “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "" #~ "Valitse sijainti, johon käyttöoikeudet riittävät, ja yritä uudelleen." #~ msgid "Enable Desktop Sounds" #~ msgstr "Käytä työpöydän ääniä" #~ msgid "Disable Desktop Sounds" #~ msgstr "Poista käytöstä työpöydän äänet" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Nauhoita näyttösi sisältö vaivatta." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Nauhoita tietokoneen äänet, mikrofonin äänet tai molemmat " #~ "samanaikaisesti." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Tuki WebM-, MP4-, GIF- ja MKV-tiedostomuodoille." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Usein lähteiden valinta." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Valinnainen laitteistokiihdytys videon koodausta varten" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Valitse näyttö tai ikkuna nauhoitettavaksi." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Valitse haluamasi alue näytöltä nauhoitettavaksi." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Aseta viive ennen nauhoituksen alkua." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Piilota tai näytä hiiren osoitin." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Valitse tallennussijainti nauhoitukselle." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Hyödynnä käteviä pikanäppäimiä." #~ msgid "Toggle Computer Sounds" #~ msgstr "Tietokoneen äänet päälle/pois" #~ msgid "_Delay" #~ msgstr "_Viive" #~ msgid "3 seconds" #~ msgstr "3 sekuntia" #~ msgid "5 seconds" #~ msgstr "5 sekuntia" #~ msgid "10 seconds" #~ msgstr "10 sekuntia" #~ msgid "_Video Format" #~ msgstr "_Videon muoto" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Tallenna nimellä…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "GStreamer-lisäosaa ei ehkä ole asennettu. Jos se on asennettu, mutta ei " #~ "vieläkään toimi kunnolla, ilmoita siitä Koohan vikailmoitusjärjestelmään." #~ msgid "Record Computer Sounds" #~ msgstr "Nauhoita tietokoneen äänet" #~ msgid "Record From Microphone" #~ msgstr "Nauhoita mikrofonista" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Perumisen viive" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Tekijänoikeus 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Näyttötallenne nauhoitettu!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Nauhoitus on tallennettu kohteeseen “{}”" #~ msgid "Open File" #~ msgstr "Avaa tiedosto" #~ msgid "Screencast Portal Request Error" #~ msgstr "Näyttötallenneportaalin pyyntövirhe" #~ msgid "Pipeline Build Error" #~ msgstr "Liukuhihnan käännösvirhe" #~ msgid "Recording Error" #~ msgstr "Nauhoitusvirhe" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Varmista, että tarkistat ajonaikaiset riippuvuudet ja Se ei toimi -sivun." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Varmista, että tallennuspaikka on olemassa tai että se on käytettävissä. " #~ "Jos se todella on olemassa tai on käytettävissä, jokin meni pieleen. " #~ "Ilmoita Koohan " #~ "ongelmasivulle." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Varmista, että tallennuspaikka on olemassa. Jos se todella on olemassa, " #~ "jotain meni pieleen. Ilmoita siitä Koohan vikailmoitusjärjestelmään." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "GStreamer-liitännäistä ei välttämättä ole asennettu. Jos ei, ilmoita " #~ "ongelmasta Koohan " #~ "vikailmoitusjärjestelmään." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "" #~ "Kaappaa näyttösi tapahtumat suoraviivaisella ja tuskattomalla tavalla " #~ "ilman häiriötekijöitä." #~ msgid "Recording Failed" #~ msgstr "Nauhoitus epäonnistui" SeaDve-Kooha-12ed227/po/fil.po000066400000000000000000000526761505224011700160150ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Dave Patrick , 2021, 2022. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2022-08-23 12:15+0000\n" "Last-Translator: Dave Patrick \n" "Language-Team: Filipino \n" "Language: fil\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==2 || n==3 || (n%10!=4 && n%10!" "=6 && n%10!=9));\n" "X-Generator: Weblate 4.14-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Eleganteng i-record ang iyong screen" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Recorder;Screen;Video;Pangrekord;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "I-rekord ang iyong screen nang walang paggambala." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Ang Kooha ay isang simpleng pangrekord ng screen na may minimalist na " "interface. Pindutin lamang ang record button nang hindi gumagalaw ng mga " "settings." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Ang mga pangunahing tampok ng Kooha ay ang mga sumusunod:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Ikansela" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Pangkalahatan" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Buksan ang Menu" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Ipakita ang mga Shortcuts" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Isara" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Nagrerekord" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "I-toggle ang Record" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "I-toggle ang Pause" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Kanselahin ang Pagrekord" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Mga Opsyon" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "I-toggle ang Mikropono" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "I-toggle ang Pointer" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Pangunahing Menu" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Mag-capture ng Monitor o Window" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Magcapture ng Seleksyon ng Screen" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "I-enable ang Mikropono" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "I-disable ang Mikropono" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Ipakita ang Pointer" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Itago ang Pointer" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Mag-start Magrekord" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Magrekord" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Kalimutan ang Sinelektang Source ng Video" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Ihinto ang Pagrekord" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Huminto" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "I-pause Pagrekord" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Magrerekord sa…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Ikansela ang Pagrekord" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Nagflu-flush…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Mga Shortcut sa Keyboard" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Tungkol sa Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Dave Patrick" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Mag-translate" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Tapos na magrekord" #: src/application.rs:144 msgid "Show in Files" msgstr "Ipakita sa Files" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Siguraduhin na may PulseAudio sa iyong kompyuter." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Wala" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Hindi masimulan ang pagrekord" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Siguraduhin na ang paglalagyan ng rekording ay naa-access." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Nagkaroon ng problema habang nagrerekord" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Pumili ng Paglalagyan ng mga Recordings" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Hindi ma-toggle ang pag-pause" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "I-copy sa clipboard" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Na-copy na sa clipboard" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Ipakita ang detalyadong error" #: src/window/mod.rs:289 msgid "Help" msgstr "Tulong" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "Naka-pause" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Seleksyon" #~ msgid "Failed to start device monitor" #~ msgstr "Hindi masimulan ang device monitor" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Hindi maka-connect sa PulseAudio daemon" #~ msgid "No microphone source found" #~ msgstr "Walang makitang mikropono" #~ msgid "No desktop speaker source found" #~ msgstr "Walang mapagkunan ng tunog mula sa desktop" #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Pindutin ito upang makita ang video." #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Failed to open file for writing" #~ msgstr "Hindi mai-open ang file" #~ msgid "Donate (Liberapay)" #~ msgstr "Mag-donate (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Mag-donate (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Tignan ang {} para sa tulong." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Hindi mai-open ang “{}”" #~ msgid "_Cancel" #~ msgstr "_Ikansela" #~ msgid "_Select" #~ msgstr "_Piliin" #~ msgid "No folder selected" #~ msgstr "Walang piniling folder" #~ msgid "Please choose a folder and try again." #~ msgstr "Pumili ng folder at uliting muli." #~ msgid "Cannot access “{}”" #~ msgstr "Hindi ma-access ang “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Pumili ng kayang i-access na lokasyon at ulitin." #~ msgid "Enable Desktop Sounds" #~ msgstr "I-enable ang Tunog Mula Sa Desktop" #~ msgid "Disable Desktop Sounds" #~ msgstr "I-disable ang Tunog Mula Sa Desktop" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 I-record ang iyong screen nang walang sagabal." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ I-rekord ang iyong mikropono, tunog ng kompyuter, o kaya naman pareho." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Mayroong support para sa mga format na WebM, MP4, GIF at MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Maraiming selection ng mga source." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Puwedeng buksan ang hardware accelerated na pag-encode" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Pumili ng monitor o window na maaaring i-record." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "" #~ "🖼️ Maaaring gumawa ng selection upang maka-capture ng area sa iyong screen." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Maglagay ng delay bago magsumali ang pag-record." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Ipakita o itago ang pointer." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Pumili ng paglalagyan ng mga recording." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Gamitin ang mga malaking-tulong na mga keyboard shortcuts." #~ msgid "Toggle Computer Sounds" #~ msgstr "I-toggle ang Tunog Mula sa Ispiker" #~ msgid "_Delay" #~ msgstr "_Antala" #~ msgid "3 seconds" #~ msgstr "3 segundo" #~ msgid "5 seconds" #~ msgstr "5 segundo" #~ msgid "10 seconds" #~ msgstr "10 segundo" #~ msgid "_Video Format" #~ msgstr "_Pormat ng Video" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_I-save sa…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Maaaring may GStreamer plugin na hindi naka-install. Kung nakainstall " #~ "naman, paki-report sa issue page." #~ msgid "Record Computer Sounds" #~ msgstr "Irekord ang Tunog Sa Kompyuter" #~ msgid "Record From Microphone" #~ msgstr "Irekord ang Tunog ng Mikropono" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Ikansela ang Antala" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Kopirayt 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Ang rekording ay natapos na!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Ang recording ay naka-save sa “{}”" #~ msgid "Open File" #~ msgstr "Buksan ang File" #~ msgid "Screencast Portal Request Error" #~ msgstr "Error sa Pag-request ng Screencast Portal" #~ msgid "Pipeline Build Error" #~ msgstr "Error sa Pagbuo ng Pipeline" #~ msgid "Recording Error" #~ msgstr "Error sa Pag-record" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Paki-check kung kumpleto ang iyong mga runtime depencies at paki-check " #~ "rin ang It " #~ "Doesn't Work na pahina." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Maaaring may GStreamer plugin na hindi naka-install. Kung hindi naman, " #~ "paki-report sa issue " #~ "page ng Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Paki-check kung nag-eexist ang iyong saving location. Kung hindi, " #~ "nagkaroon ng error at paki-report sa issue page ng Kooha." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "" #~ "I-record ang iyong screen sa madaling paraan nang walang mga distraksyon." #~ msgid "" #~ "Make sure to check for the runtime dependencies and \"It Doesn't Work\" " #~ "page in Kooha's readme page. ({})" #~ msgstr "" #~ "Paki-check ang iyong mga runtime dependencies at ang \"It Doesn't Work\" " #~ "na pahina sa readme page ng Kooha. ({})" #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's " #~ "issue page. ({})" #~ msgstr "" #~ "Maaaring may GStreamer plugin na hindi naka-install. Kung hindi, paki-" #~ "report sa issue page ng Kooha. ({})" #~ msgid "Screencast Portal Request Failed" #~ msgstr "Screencast Portal Request Nag-fail" #~ msgid "Recording Failed" #~ msgstr "Ang Pag-record ay Nag-fail" #~ msgid "Pipeline Build Failed" #~ msgstr "Nag-fail ang Pagbuo ng Pipeline" #~ msgid "Sorry! An error has occurred." #~ msgstr "Paumanhin! Nagkaroon ng error." #~ msgid "Please choose an accessible location and retry." #~ msgstr "Pumili ng kayang i-access na lokasyon at ulitin." #~ msgid "The recording has been saved in {}" #~ msgstr "Ang recording ay nakasave sa {}" #~ msgid "Select a Folder" #~ msgstr "Pumili ng folder" #~ msgid "Inaccessible location '{}'" #~ msgstr "Hindi maaccess ang lokasyon na '{}'" #~ msgid "Toggle Record Pause" #~ msgstr "I-toggle ang Record Pause" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Mag-select ng area ng iyong screen upang i-record." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Suporta para sa mga libreng Matroska at WebM na mga format." #~ msgid "Open menu" #~ msgstr "Buksan ang menu" #~ msgid "Show keyboard shortcuts" #~ msgstr "Ipakita ang mga keyboard shortcut" #~ msgid "Toggle record" #~ msgstr "I-toggle ang pagrekord" #~ msgid "Toggle record pause" #~ msgstr "I-toggle ang pause" #~ msgid "Cancel delay" #~ msgstr "Ikansela ang antala" #~ msgid "Toggle computer sounds" #~ msgstr "I-toggle ang tunog sa ispiker" #~ msgid "Toggle microphone" #~ msgstr "I-toggle ang tunog sa mikropono" #~ msgid "Toggle pointer" #~ msgstr "I-toggle ang pointer" #~ msgid "Delay" #~ msgstr "Antala" #~ msgid "Video Format" #~ msgstr "Pormat ng video" #~ msgid "Save to…" #~ msgstr "I-save sa…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Mga keyboard shortcut" #~ msgid "About Kooha" #~ msgstr "Tungkol sa Kooha" #~ msgid "Sorry! An error has occured." #~ msgstr "Sorry! Nagkaroon ng error." #~ msgid "Videos" #~ msgstr "Mga Video" #~ msgid "Failed to create session." #~ msgstr "Nabigong gumawa ng sesyon." #~ msgid "Failed to select sources." #~ msgstr "Nabigong sumelekta ng mga source." #~ msgid "Select" #~ msgstr "Piliin" #~ msgid "Inaccessible location “{directory}”" #~ msgstr "Hindi maacess ang “{directory}”" #~ msgid "The recording has been saved in {saving_location}" #~ msgstr "Ang narekord ay naka-save sa {saving_location}" #~ msgid "Inaccessible location '{directory}'" #~ msgstr "Hindi ma-access ang '{directory}'" #~ msgid "Toggle capture mode" #~ msgstr "I-toggle ang paraan ng pagrekord" #~ msgid "Full Screen" #~ msgstr "Buong screen" #~ msgid "Processing" #~ msgstr "Nagproproseso" #~ msgid "Save location not set" #~ msgstr "Hindi na-set ang lokasyon" #~ msgid "Recording cannot start" #~ msgstr "Hindi maaaring magstart ang pagrekord" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "Ang lokasyon ng paglalagyan ay maaaring nabura na." #~ msgid "The recording has been saved in" #~ msgstr "Ang rekording ay nasave sa" #~ msgid "Record computer sounds" #~ msgstr "Irekord ang tunog sa kompyuter" #~ msgid "Record from microphone" #~ msgstr "Irekord ang tunog ng mikropono" #~ msgid "Show pointer" #~ msgstr "Ipakita ang pointer" #~ msgid "Elegantly record your screen " #~ msgstr "Eleganteng I-record ang iyong screen " #~ msgid "🎥 Capture your screen without any hustle." #~ msgstr "🎥 I-rekord ang iyong screen sa madaling paraan." #~ msgid "Simple screen recorder" #~ msgstr "Simpleng pangrekord ng screen" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Ang Kooha ay isang simpleng pangrekord ng screen na binuo gamit ang GTK. " #~ "Maaari kang magrekord ng iyong screen at pati na rin ang tunog mula sa " #~ "mikropono o ispiker." SeaDve-Kooha-12ed227/po/fr_FR.po000066400000000000000000000607561505224011700162370ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # J. Lavoie , 2021. # Thomas Citharel , 2021. # Rémi de Chazelles , 2021. # Maxime Leroy , 2021, 2022. # Magik Leo , 2022. # matb , 2022. # rene-coty , 2022, 2023, 2024. # "Mathieu B." , 2023. # p h , 2024. # Wedone , 2024. # Clyhtsuriva , 2024. # Kevin Gagnon , 2025. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2025-06-10 17:01+0000\n" "Last-Translator: Kevin Gagnon \n" "Language-Team: French \n" "Language: fr_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: Weblate 5.12-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Enregistrez élégamment votre écran" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Capture d’écran;Enregistrement;Écran;Vidéo;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Capturez votre écran de manière intuitive et simple sans distractions." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha est un enregistreur d’écran simple avec une interface minimaliste. " "Vous n’avez qu’à cliquer sur le bouton d’enregistrement, sans avoir à " "configurer un tas de paramètres." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Les principales caractéristiques de Kooha sont les suivantes :" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" "🎙️ Enregistrez votre micro, l’audio de votre ordinateur ou les deux en même " "temps" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Prise en charge des formats WebM, MP4, GIF, et Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Sélectionnez un écran ou une partie de l’écran à enregistrer" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Configurez l’emplacement de sauvegarde, la visibilité du pointeur, la " "fréquence d’images et le délai" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Encodage expérimental accéléré par matériel" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Options d'enregistrement et bouton pour démarrer" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Temps d'enregistrement en cours et bouton d'arrêt" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "Décompte pour démarrer l'enregistrement et bouton d'arrêt" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Sélectionnez une zone" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Annuler" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Fait" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Réinitialiser la sélection" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Général" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Délai (en secondes)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Délai avant le début de l’enregistrement" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Dossier des enregistrements" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Dossier de destination des enregistrements" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Vidéo" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Format" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Fréquence d’images" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Ouvrir le menu" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Afficher les préférences" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Afficher les raccourcis" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Quitter" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Enregistrement" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Activer / Désactiver l’enregistrement" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Activer / Désactiver la pause" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Annuler l’enregistrement" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Réglages" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Activer / Couper l’audio de l’ordinateur" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Activer / Couper le microphone" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Activer / Désactiver le curseur" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Menu principal" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Capturer un écran ou une fenêtre" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Capturer une sélection de l’écran" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Activer l’audio de l’ordinateur" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Désactiver l’audio de l’ordinateur" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Activer le microphone" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Désactiver le microphone" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Afficher le curseur" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Masquer le pointeur" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Commencer l’enregistrement" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Enregistrer" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Oublier les sources vidéo précédemment sélectionnées" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Arrêter l’enregistrement" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Arrêter" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Mettre l’enregistrement en pause" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Enregistrer dans…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Annuler l’enregistrement" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Vidage…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Préférences" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Raccourcis clavier" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_À propos de Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "J. Lavoie, M. Bousquet, Irénée Thirion, Wedone, Clyhtsuriva" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Faire un don (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Traduire" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Écran enregistré" #: src/application.rs:144 msgid "Show in Files" msgstr "Afficher dans les fichiers" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Le périphérique audio par défaut n’a pas été trouvé" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Assurez-vous que PulseAudio est installé sur votre système." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} heure" msgstr[1] "{time} heures" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minute" msgstr[1] "{time} minutes" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} seconde" msgstr[1] "{time} secondes" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Échec de la définition du dossier des enregistrements" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Cette fréquence d’images peut causer des problèmes de performance avec le " "format sélectionné." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Ce format est expérimental et n’est pas pris en charge." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Aucun" #: src/recording.rs:42 msgid "No active profile" msgstr "Aucun profil actif" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Échec du démarrage de l’enregistrement" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Visitez {link} pour obtenir de l’aide." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Un greffon GStreamer n’est peut-être pas installé." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" "Assurez-vous que l’emplacement d’enregistrement existe et est accessible." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Une erreur s’est produite pendant l’enregistrement" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Échec de l’ouverture de « {path} » pour écrire" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Sélectionner le dossier des enregistrements" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Échec du basculement en pause" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Un enregistrement est en cours. Quitter immédiatement peut le rendre " "illisible. Veuillez interrompre l’enregistrement avant de quitter." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Quitter annulera le traitement et peut rendre l’enregistrement illisible." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Quitter l’application ?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Copier dans le presse-papiers" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Copié dans le presse-papiers" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Afficher l’erreur détaillée" #: src/window/mod.rs:289 msgid "Help" msgstr "Aide" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "J’ai compris" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Ouvrir les préférences ?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Le format sélectionné précédemment est peut-être indisponible. Ouvrez les " "préférences et sélectionnez un format pour continuer à enregistrer." #: src/window/mod.rs:308 msgid "Later" msgstr "Plus tard" #: src/window/mod.rs:310 msgid "Open" msgstr "Ouvrir" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Un enregistrement est en cours" #: src/window/mod.rs:509 msgid "Paused" msgstr "En pause" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Sélection" #~ msgid "Failed to start device monitor" #~ msgstr "Échec du démarrage du moniteur de périphérique" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Échec de la connexion au daemon PulseAudio" #~ msgid "No microphone source found" #~ msgstr "Aucune source microphone trouvée" #~ msgid "No desktop speaker source found" #~ msgstr "Aucune source de haut-parleur trouvée" #~ msgid "Ok" #~ msgstr "OK" #~ msgid "This frame rate may cause performance issues." #~ msgstr "" #~ "Cette fréquence d’images peut entraîner des problèmes de performance." #~ msgid "approx." #~ msgstr "approx." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ Sélectionnez un écran, une fenêtre, ou une portion de l’écran à " #~ "enregistrer" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Sélection de plusieurs sources" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Cliquez ici pour voir la vidéo." #~ msgid "Failed to select saving location" #~ msgstr "La sélection de l’emplacement de sauvegarde a échoué" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Impossible d’ouvrir le fichier pour l’écriture" #~ msgid "Donate (Liberapay)" #~ msgstr "Faire un don (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Faire un don (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Consultez {} pour de l’aide." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Échec de l’ouverture de « {} » pour l’écriture" #~ msgid "_Cancel" #~ msgstr "_Annuler" #~ msgid "_Select" #~ msgstr "_Sélectionner" #~ msgid "No folder selected" #~ msgstr "Aucun dossier sélectionné" #~ msgid "Please choose a folder and try again." #~ msgstr "Veuillez choisir un dossier et réessayer." #~ msgid "Cannot access “{}”" #~ msgstr "Ne peut accéder à « {} »" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Veuillez choisir une localisation accessible puis réessayez." #~ msgid "Enable Desktop Sounds" #~ msgstr "Activer les sons de bureau" #~ msgid "Disable Desktop Sounds" #~ msgstr "Désactiver les sons de bureau" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Capturez votre écran en toute simplicité." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Enregistrez votre micro, les sons de l'ordinateur ou les deux en même " #~ "temps." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Prise en charge des formats WebM, MP4, GIF et MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Sélection de plusieurs sources." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 L'encodage peut bénéficier de l'accélération matérielle" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "Choisissez un écran ou une fenêtre à enregistrer." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "" #~ "🖼️ Créer une zone de sélection pour capturer cette partie de l'écran." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "" #~ "⏲️ Définissez le délai de préparation avant de commencer l'enregistrement." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Masquer ou afficher le pointeur de la souris." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "" #~ "💾 Choisissez un emplacement de sauvegarde pour votre enregistrement." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Utilisez des raccourcis clavier utiles." #~ msgid "Toggle Computer Sounds" #~ msgstr "Activer les sons de l'ordinateur" #~ msgid "_Delay" #~ msgstr "_Délai" #~ msgid "3 seconds" #~ msgstr "3 secondes" #~ msgid "5 seconds" #~ msgstr "5 secondes" #~ msgid "10 seconds" #~ msgstr "10 secondes" #~ msgid "_Video Format" #~ msgstr "Format _Vidéo" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Sauvegarder sous…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Le greffon GStreamer peut ne pas être installé. S'il est installé mais " #~ "que ça ne fonctionne toujours pas correctement, merci de le signaler sur " #~ "la page des problèmes " #~ "de Kooha." #~ msgid "Record Computer Sounds" #~ msgstr "Enregistrer les sons de l'ordinateur" #~ msgid "Record From Microphone" #~ msgstr "Enregistrer le son du micro" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Annuler le retard" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Droits d'auteur 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Vidéographie enregistrée !" #~ msgid "The recording has been saved in “{}”" #~ msgstr "L'enregistrement à été enregistré dans « {} »" #~ msgid "Open File" #~ msgstr "Ouvrir un fichier" #~ msgid "Screencast Portal Request Error" #~ msgstr "Échec de la requête vers le portail Screencast" #~ msgid "Pipeline Build Error" #~ msgstr "Échec de la construction de la pipeline" #~ msgid "Recording Error" #~ msgstr "Erreur d'enregistrement" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Veuillez vérifier les dépendances d'exécution et la page Ça ne marche " #~ "pas." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Veillez à ce que la localisation enregistrée existe et est accessible. Si " #~ "c'est bien le cas, merci de reporter ce problème sur la page des problèmes de Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Veuillez vérifier que l'emplacement de destination des enregistrements " #~ "existe. Si c'est déjà le cas, une erreur s'est produite, merci de la " #~ "signaler sur la page " #~ "des problèmes de Kooha." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "" #~ "Capturez votre écran de manière simple et indolore, sans distractions." #~ msgid "Please choose an accessible location and retry." #~ msgstr "Veuillez choisir un emplacement accessible et réessayer." #~ msgid "Select a Folder" #~ msgstr "Choisir un dossier" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Sélectionnez une zone de votre écran à enregistrer." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Prise en charge des formats gratuits Matroska et WebM." #~ msgid "Open menu" #~ msgstr "Ouvrir le menu" #~ msgid "Show keyboard shortcuts" #~ msgstr "Afficher les raccourcis clavier" #~ msgid "Toggle record" #~ msgstr "Activer l’enregistrement" #~ msgid "Toggle record pause" #~ msgstr "Activer la pause de l’enregistrement" #~ msgid "Cancel delay" #~ msgstr "Annuler le retard" #~ msgid "Toggle computer sounds" #~ msgstr "Activer le son de l’ordinateur" #~ msgid "Toggle microphone" #~ msgstr "Activer le micro" #~ msgid "Toggle pointer" #~ msgstr "Activer le pointeur" #~ msgid "Delay" #~ msgstr "Retarder" #~ msgid "Video Format" #~ msgstr "Format de la vidéo" #~ msgid "Save to…" #~ msgstr "Enregistrer dans…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Raccourcis clavier" #~ msgid "About Kooha" #~ msgstr "A propos" #~ msgid "Sorry! An error has occured." #~ msgstr "Désolé ! Une erreur s’est produite." #~ msgid "Videos" #~ msgstr "Vidéos" #~ msgid "Failed to create session." #~ msgstr "La création d'une session a échoué." #~ msgid "Failed to select sources." #~ msgstr "Échec de la sélection des sources." #~ msgid "Select" #~ msgstr "Choisir" #~ msgid "Inaccessible location “{directory}”" #~ msgstr "Emplacement “{directory}” inaccessible" #~ msgid "The recording has been saved in {saving_location}" #~ msgstr "L’enregistrement a été sauvegardé dans {saving_location}" #~ msgid "Inaccessible location '{directory}'" #~ msgstr "Emplacement inaccessible « {directory} »" #~ msgid "Toggle capture mode" #~ msgstr "Activer le mode capture" #~ msgid "Full Screen" #~ msgstr "Plein écran" #~ msgid "Processing" #~ msgstr "Traitement en cours" #~ msgid "Save location not set" #~ msgstr "L’emplacement de sauvegarde n’est pas défini" #~ msgid "Recording cannot start" #~ msgstr "L’enregistrement n’a pas pu débuter" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "" #~ "L’emplacement d’enregistrement que vous avez sélectionné a peut-être été " #~ "supprimé." #~ msgid "The recording has been saved in" #~ msgstr "L’enregistrement a été enregistré dans" #~ msgid "Record computer sounds" #~ msgstr "Enregistrer les sons de l’ordinateur" #~ msgid "Record from microphone" #~ msgstr "Enregistrer à partir du microphone" #~ msgid "Show pointer" #~ msgstr "Afficher le pointeur" #~ msgid "Elegantly record your screen " #~ msgstr "Enregistrez élégamment votre écran " #~ msgid "Simple screen recorder" #~ msgstr "Un simple enregistreur d’écran" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Kooha est un enregistreur d’écran simple conçu avec GTK. Il vous permet " #~ "d’enregistrer votre écran ainsi que l’audio de votre micro ou de votre " #~ "ordinateur." SeaDve-Kooha-12ed227/po/ga.po000066400000000000000000000326741505224011700156260ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Aindriú Mac Giolla Eoin , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-09-28 15:15+0000\n" "Last-Translator: Aindriú Mac Giolla Eoin \n" "Language-Team: Irish \n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :" "(n>6 && n<11) ? 3 : 4;\n" "X-Generator: Weblate 5.8-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Taifead go galánta do scáileán" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Taifeadán;Scáileán;Físeán;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Gabh do scáileán ar bhealach iomasach agus simplí gan aon seachrán." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Is taifeadán scáileáin simplí é Kooha le comhéadan íostach. Is féidir leat " "cliceáil ar an gcnaipe taifead gan a bheith a chumrú a bunch de shocruithe." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Áirítear ar phríomhghnéithe Kooha na nithe seo a leanas:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Taifead micreafón, fuaim deisce, nó an dá cheann ag an am céanna" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Tacaíocht d'fhormáidí WebM, MP4, GIF, agus Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Roghnaigh monatóir nó cuid den scáileán le taifeadadh" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Suíomh coigilte inchumraithe, infheictheacht an phointeora, ráta fráma, " "agus moill" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Ionchódú luathaithe crua-earraí turgnamhacha" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Roghanna taifeadta agus cnaipe chun taifeadadh a thosú" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Fad an taifeadta idir lámha agus cnaipe chun an taifeadadh a stopadh" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" "Comhaireamh síos chun taifeadadh a thosú agus cnaipe chun an taifeadadh a " "chealú" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Roghnaigh Réimse" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Cealaigh" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Déanta" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Athshocraigh Roghnú" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Ginearálta" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Moill (Soicindí)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Eatramh ama sula dtosaíonn an taifeadadh" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Fillteán Taifeadtaí" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Fillteán sprice do na taifeadtaí" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Físeán" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Formáid" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Ráta Fráma" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Roghchlár Oscailte" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Taispeáin Roghanna" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Taispeáin Aicearraí" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Scoir" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Taifeadadh" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Scoránaigh Taifead" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Scoránaigh Sos" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Cealaigh Taifead" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Socruithe" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Scoránaigh Fuaime Deisce" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Scoránaigh Micreafón" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Scoránaigh Pointeoir" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Príomh-Roghchlár" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Gabháil Monatóir nó Fuinneog" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Gabháil Roghnú Scáileáin" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Cumasaigh Fuaime Deisce" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Díchumasaigh Fuaime Deisce" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Cumasaigh Micreafón" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Díchumasaigh Micreafón" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Taispeáin Pointeoir" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Folaigh Pointeoir" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Tosaigh Taifeadadh" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Taifead" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Nábac Foinsí Físeáin Roghnaithe Roimhe Seo" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Stop Taifeadadh" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Stad" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Taifeadadh Sos" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Ag taifeadadh i…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Cealaigh Taifeadadh" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Ag sileadh…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Roghanna" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Aicearraí méarchláir" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Maidir le Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "aistritheoir-creidmheasa" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Deonaigh (Ceannaigh caife dom)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Aistrigh" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Screencast taifeadta" #: src/application.rs:144 msgid "Show in Files" msgstr "Taispeáin i gComhaid" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Theip ar an ngléas fuaime réamhshocraithe a aimsiú" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Cinntigh go bhfuil PulseAudio suiteáilte agat i do chóras." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time}uair" msgstr[1] "{time} uaireanta" msgstr[2] "{time} uaireanta" msgstr[3] "{time} uaireanta" msgstr[4] "{time} uaireanta" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} nóiméad" msgstr[1] "{time} nóiméaid" msgstr[2] "{time} nóiméaid" msgstr[3] "{time} nóiméaid" msgstr[4] "{time} nóiméaid" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} soicind" msgstr[1] "{time} soicindí" msgstr[2] "{time} soicindí" msgstr[3] "{time} soicindí" msgstr[4] "{time} soicindí" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Theip ar fhillteán taifeadtaí a shocrú" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Féadfaidh an ráta fráma seo a bheith ina chúis le saincheisteanna " "feidhmíochta ar an bhformáid roghnaithe." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Tá an fhormáid seo turgnamhach agus ní thacaítear léi." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Dada" #: src/recording.rs:42 msgid "No active profile" msgstr "Níl aon phróifíl ghníomhach ann" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Theip ar an taifeadadh a thosú" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Seiceáil {link} le haghaidh cabhrach." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Seans nach bhfuil breiseán GStreamer suiteáilte." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Cinntigh go bhfuil an suíomh coigilte ann agus go bhfuil rochtain air." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Tharla earráid agus an taifeadadh" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Theip ar “{path}” a oscailt chun é a scríobh" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Roghnaigh Fillteán Taifeadtaí" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Theip ar scoránú sos" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Tá taifeadadh ar siúl faoi láthair. D'fhéadfadh sé nach bhféadfaí an " "taifeadadh a sheinm má scoirtear láithreach. Stop an taifeadadh roimh scor." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Má scoireann tú, cuirfear an phróiseáil ar ceal agus d'fhéadfadh sé go " "mbeifear in ann an taifeadadh a sheinm." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Scoir an Iarratas?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Cóipeáil chuig an ngearrthaisce" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Cóipeáladh chuig an ngearrthaisce" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Taispeáin earráid mhionsonraithe" #: src/window/mod.rs:289 msgid "Help" msgstr "Cabhrú" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Ceart go leor, Fuair mé" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Oscail Roghanna?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Seans nach raibh an fhormáid a roghnaíodh roimhe seo ar fáil. Oscail " "roghanna agus roghnaigh formáid chun leanúint ar aghaidh ag taifeadadh." #: src/window/mod.rs:308 msgid "Later" msgstr "Níos déanaí" #: src/window/mod.rs:310 msgid "Open" msgstr "Oscail" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Tá taifeadadh ar siúl" #: src/window/mod.rs:509 msgid "Paused" msgstr "Ar Sos" #: src/window/mod.rs:546 msgid "Normal" msgstr "Gnáth" #: src/window/mod.rs:547 msgid "Selection" msgstr "Roghnú" SeaDve-Kooha-12ed227/po/gl.po000066400000000000000000000404121505224011700156260ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Fran Diéguez , 2021, 2022. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2022-08-15 02:48+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.14-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Grave a súa pantalla elegantemente" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Capturar pantalla;Gravador;Pantalla;Vídeo;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Capture a súa pantalla de forma intuitiva e directa, sen distraccións." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha é un gravador de pantalla simple con unha interface minimalista. Só " "faga clic no botón gravar sen ter que configurar un centar de axustes." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "As características principais de Kooha inclúen o seguinte:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Cancelar" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Xeral" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Abrir menú" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Mostrar atallos" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Saír" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Gravando" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Activar/Desactivar gravación" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Activar/Desactivar pausa" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Axustes" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Trocar micrófono" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Trocar punteiro" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Menú principal" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Capturar un monitor ou unha xanela" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Capturar unha selección da pantalla" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Mostrar punteiro" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Gravar" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Deter" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Gravando en…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Purgando…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Atallos de teclado" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Sobre Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Fran Diéguez <fran.dieguez@gnome.org>, 2021" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "" #: src/application.rs:144 msgid "Show in Files" msgstr "" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Ningún" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Elexir cartafol de gravacións" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "En pausa" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Área" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "_Cancel" #~ msgstr "_Cancelar" #~ msgid "_Select" #~ msgstr "_Seleccionar" #~ msgid "Cannot access “{}”" #~ msgstr "Non se pode acceder a “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Por favor, elixa un lugar accesíbel e ténteo de novo." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Grava a súa pantalla sen ningunha molestia." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Grava o seu micrófono, os sons do sistema, ou ambos ao mesmo tempo." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Compatibilidade para formatos WebM, MP4, GIF, e MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Selección de múltiples fontes." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Codificación acelerada por hardware opcional" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Selecciona un monitor ou xanela para gravar." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "" #~ "🖼️ Crea unha selección para capturar un área específica da súa pantalla." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Selecciona un atraso antes de empezar a gravar." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Oculta ou mostra o cursor." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Selecciona unha localización para a súa gravación." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Usa os útiles atallos de teclado." #~ msgid "Toggle Computer Sounds" #~ msgstr "Trocar sons do computador" #~ msgid "_Delay" #~ msgstr "_Atraso" #~ msgid "5 seconds" #~ msgstr "5 segundos" #~ msgid "10 seconds" #~ msgstr "10 segundos" #~ msgid "_Video Format" #~ msgstr "_Formato do vídeo" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Gardar en…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "É posíbel que un engadido de GStreamer non esté instalado. Se está " #~ "instalado pero segue sen funcionar correctamente, por favor informe na páxina de incidencias de " #~ "Kooha." #~ msgid "Record Computer Sounds" #~ msgstr "Gravar sons do computador" #~ msgid "Record From Microphone" #~ msgstr "Gravar desde o micrófono" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Cancelar retraso" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Captura de pantalla gravada!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "A gravación gardouse en “{}”" #~ msgid "Open File" #~ msgstr "Abrir ficheiro" #~ msgid "Screencast Portal Request Error" #~ msgstr "Produciuse un erro ao solicitar o portal de transmisión de pantalla" #~ msgid "Pipeline Build Error" #~ msgstr "Produciuse un erro ao construír a pipeline" #~ msgid "Recording Error" #~ msgstr "Erro de gravación" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Asegúrese comprobar as dependencias de tempo de execución e a página non " #~ "funciona." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Asegúrese de que a localización de gardado existe ou é accesíbel. Se " #~ "existe ou é accesíbel, algo foi mal e, por favor, informe na páxina de incidencias de " #~ "Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Asegúrese de que a localización de gardado existe. Se realmente existe, " #~ "algo foi mal e por favor informe á páxina de incidencias de Kooha." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "É posíbel que un engadido de GStreamer non esté instalado. Se non é así, " #~ "por favor informe na " #~ "página de problemas de Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Asegúrese que a localización de gardado existe. Se non é así, algo foi " #~ "mal e por favor informe na página de problemas de Kooha." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "Capture a súa pantalla de forma doada, indolora e sen distracións." SeaDve-Kooha-12ed227/po/he.po000066400000000000000000000324171505224011700156260ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # kodchofshi , 2021. # Omer I.S. , 2021. # guymii , 2023. # Araxeus , 2023. # "Omer I.S." , 2024. # JerryDX , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-07-11 14:09+0000\n" "Last-Translator: JerryDX \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: Weblate 5.7-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "הקלט את המסך באלגנטיות" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "צילום מסך;הקלטה;מסך;וידאו;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "הקלט את המסך בדרך פשוטה ואינטואיטיבית ללא הסחות דעת." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha הוא מקליט מסך פשוט עם ממשק מינימליסטי. ניתן פשוט ללחוץ על כפתור ההקלטה " "מבלי שצריך להגדיר הגדרות מסובכות." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "היכולות העיקריות של Kooha הן:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ הקלטת קול מהמיקרופון, מהשמע, או משניהם בו זמנית" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 תמיכה בפורמטי הוידאו: WebM, MP4, GIF, ו-Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ בחר איזה מסך או איזה חלק מהמסך להקליט" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ ניתן להגדיר את מקום שמירת הקבצים, האם יופיע הסמן בזמן ההקלטה, מספר " "הפריימים לשניה, והשהייה לפני תחילת ההקלטה" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 קידוד באמצעות חומרה (ניסיוני)" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "בחר אזור" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "בטל" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "אשר" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "איפוס בחירה" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "כללי" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "השהייה (בשניות)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "כמה זמן יעבור לפני התחלת ההקלטה" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "תיקיית ההקלטות" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "תיקיית יעד להקלטות" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "וידאו" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "פורמט" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "קצב פריימים" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "פתיחת התפריט" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "הראה העדפות" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "הראה קיצורים" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "יציאה" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "מקליט" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "הפעל הקלטה" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "הפעל השהיה" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "בטל הקלטה" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "הגדרות" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "הפעל את צליל המחשב" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "הפעל את המיקרופון" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "הפעל את הסמן" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "התפריט הראשי" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "תפוס מסך או חלון" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "תפוס אזור מהמסך" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "הפעל שמע מהמחשב" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "בטל שמע מהמחשב" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "הפעל מיקרופון" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "בטל מיקרופון" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "הראה את הסמן" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "הסתר את הסמן" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "הפעל הקלטה" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "הקלט" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "שכח את מקור הוידאו שנבחר בפעם הקודמת" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "הפסק להקליט" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "הפסק" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "השהה הקלטה" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "מקליט בעוד…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "בטל הקלטה" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "מעבד…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_העדפות" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_קיצורי מקלדת" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_אודות Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "עומר א״ש " #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "תרומה (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "תרגום" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "הקלטה הסתיימה" #: src/application.rs:144 msgid "Show in Files" msgstr "הראה בקבצים" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "לא הצליח למצוא את מכשיר השמע" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "וודאו שPulseAudio מותקן על המחשב שלכם." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "" #: src/window/mod.rs:546 msgid "Normal" msgstr "" #: src/window/mod.rs:547 msgid "Selection" msgstr "" #~ msgid "This frame rate may cause performance issues." #~ msgstr "קצב הפריימים הנ\"ל יכול לגרום לבעיות בביצוע." #~ msgid "approx." #~ msgstr "בקירוב" #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ בחר האם להקליט מסך, חלון או חלק מוגדר של המסך" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 בחר מבין מספר מקורות" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "לחץ כאן לצפיה בוידאו." #~ msgid "Donate (Liberapay)" #~ msgstr "לתרומה (Libreapay)" #~ msgid "Donate (PayPal)" #~ msgstr "לתרומה (PayPal)" #~ msgid "Dave Patrick" #~ msgstr "דייב פטריק" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "כל הזכויות שמורות מ־2021 לדייב פטריק (Dave Patrick)" SeaDve-Kooha-12ed227/po/hi.po000066400000000000000000000525071505224011700156340ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Hemish , 2021, 2022. # Th3 A6add0n , 2023. # Scrambled777 , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-05-11 05:00+0000\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: Weblate 5.5.4\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "अपनी स्क्रीन को खूबसूरती से रिकॉर्ड करें" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "स्क्रीनकास्ट;रिकॉर्डर;स्क्रीन;वीडियो;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "अपनी स्क्रीन को बिना किसी व्यवधान के सहज और सरल तरीके से कैप्चर करें।" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha न्यूनतम इंटरफ़ेस वाला एक सरल स्क्रीन रिकॉर्डर है। आप बहुत सारी सेटिंग्स विन्यस्त किए " "बिना केवल रिकॉर्ड बटन पर क्लिक कर सकते हैं।" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Kooha की मुख्य विशेषताएं निम्नलिखित हैं:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ एक ही समय में माइक्रोफोन, डेस्कटॉप ऑडियो या दोनों रिकॉर्ड करें" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 WebM, MP4, GIF और Matroska प्रारूपों के लिए समर्थन" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ रिकॉर्ड करने के लिए मॉनिटर या स्क्रीन का हिस्सा चुनें" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "🛠️ विन्यास योग्य सहेजने का स्थान, सूचक दृश्यता, फ्रेम दर और विलंब" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 प्रायोगिक हार्डवेयर त्वरित एन्कोडिंग" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "क्षेत्र चुनें" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "रद्द करें" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "संपन्न" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "चयन रीसेट करें" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "सामान्य" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "विलंब (सेकंड)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "रिकॉर्डिंग शुरू होने से पहले का समय अंतराल" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "रिकॉर्डिंग फोल्डर" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "रिकॉर्डिंग के लिए गंतव्य फोल्डर" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "वीडियो" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "प्रारूप" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "फ्रेम दर" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "मेनू खोलें" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "प्राथमिकताएं दिखाएं" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "शॉर्टकट दिखाएं" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "बंद करें" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "रिकॉर्डिंग" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "रिकार्डिंग शुरू/बंद करें" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "विराम शुरू/बंद करें" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "रिकार्डिंग रद्द करें" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "सेटिंग" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "डेस्कटॉप ऑडियो चालु/बंद करें" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "माइक्रोफोन चालु/बंद करें" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "सूचक चालु/बंद करें" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "मुख्य मेनू" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "मॉनिटर या विंडो कैप्चर करें" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "स्क्रीन का चयन कैप्चर करें" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "डेस्कटॉप ऑडियो सक्षम करें" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "डेस्कटॉप ऑडियो अक्षम करें" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "माइक्रोफोन सक्षम करें" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "माइक्रोफोन अक्षम करें" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "सूचक दिखाएं" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "सूचक छुपाएं" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "रिकॉर्डिंग प्रारंभ करें" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "रिकार्ड करें" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "पहले चयनित वीडियो स्रोतों को भूल जाएं" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "रिकॉर्डिंग रोकें" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "रोकें" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "रिकॉर्डिंग विरामित करें" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "रिकॉर्डिंग शुरू होने में…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "रिकॉर्डिंग रद्द करें" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "हटाया जा रहा है…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "प्राथमिकताएं (_P)" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "कीबोर्ड शॉर्टकट (_K)" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "Kooha के बारे में (_A)" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" "Hemish <hemish04082005@gmail.com>\n" "Scrambled777 <weblate.scrambled777@simplelogin.com>" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "दान करें (मेरे लिए कॉफी खरीदें)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "अनुवाद करें" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "स्क्रीनकास्ट रिकॉर्ड किया गया" #: src/application.rs:144 msgid "Show in Files" msgstr "फाइलों में दिखाएं" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "तयशुदा ऑडियो डिवाइस ढूंढने में विफल" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "सुनिश्चित करें कि आपके सिस्टम में PulseAudio स्थापित है।" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} घंटा" msgstr[1] "{time} घंटे" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} मिनट" msgstr[1] "{time} मिनट" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} सेकंड" msgstr[1] "{time} सेकंड" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "रिकॉर्डिंग फोल्डर निर्धारित करने में विफल" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "यह फ्रेम दर चयनित प्रारूप पर प्रदर्शन संबंधी समस्याएं पैदा कर सकती है।" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "यह प्रारूप प्रयोगात्मक और असमर्थित है।" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "कोई नहीं" #: src/recording.rs:42 msgid "No active profile" msgstr "कोई सक्रिय प्रोफाइल नहीं" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "रिकॉर्डिंग प्रारंभ करने में विफल" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "सहायता के लिए {link} देखें।" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "GStreamer प्लगइन स्थापित नहीं किया जा सकता है।" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "सुनिश्चित करें कि सहेजने हेतु स्थान मौजूद है और पहुंच योग्य है।" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "रिकॉर्डिंग करते समय एक त्रुटि उत्पन्न हुई" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "लिखने के लिए “{path}” खोलने में विफल" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "रिकॉर्डिंग फोल्डर चुनें" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "विराम शुरू/बंद करने में विफल" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "अभी एक रिकॉर्डिंग चल रही है। तुरंत बंद करने से रिकॉर्डिंग चलने योग्य नहीं रह जाएगी। कृपया " "छोड़ने से पहले रिकॉर्डिंग रोकें।" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "छोड़ने से प्रसंस्करण रद्द हो जायेगा और रिकॉर्डिंग चलने योग्य नहीं रह जाएगी।" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "अनुप्रयोग छोड़ें?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "क्लिपबोर्ड पर कॉपी करें" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "क्लिपबोर्ड पर कॉपी किया गया" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "विस्तृत त्रुटि दिखाएं" #: src/window/mod.rs:289 msgid "Help" msgstr "सहायता" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "ठीक है, समझ गया" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "प्राथमिकताएं खोलें?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "पहले चयनित प्रारूप अनुपलब्ध हो सकता है। प्राथमिकताएं खोलें और रिकॉर्डिंग जारी रखने के लिए " "एक प्रारूप चुनें।" #: src/window/mod.rs:308 msgid "Later" msgstr "बाद में" #: src/window/mod.rs:310 msgid "Open" msgstr "खोलें" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "रिकॉर्डिंग प्रगति पर है" #: src/window/mod.rs:509 msgid "Paused" msgstr "विरामित" #: src/window/mod.rs:546 msgid "Normal" msgstr "साधारण" #: src/window/mod.rs:547 msgid "Selection" msgstr "चयन" #~ msgid "approx." #~ msgstr "लगभग" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #, fuzzy #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #, fuzzy #~ msgid "Matroska" #~ msgstr "Matroska" #, fuzzy #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #, fuzzy #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #, fuzzy #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #, fuzzy #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #, fuzzy #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Donate (Liberapay)" #~ msgstr "दान करें (लिबरेपे के द्वारा)" #~ msgid "Donate (PayPal)" #~ msgstr "दान करें (पेपाल के द्वारा)" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 बिना किसी परेशानी के अपनी स्क्रीन कैप्चर करें।" #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "️ 🎙️अपने माइक्रोफ़ोन, कंप्यूटर की आवाज़ या दोनों को एक ही समय पर रिकॉर्ड करें।" #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "WebM, MP4, GIF और MKV प्रारूपों में रिकार्ड करने में समर्थ।" #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 एकाधिक स्रोत चयन।" #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 वैकल्पिक हार्डवेयर त्वरित एन्कोडिंग" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ ️रिकॉर्ड करने के लिए मॉनिटर या विंडो चुनें।" #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ अपनी स्क्रीन से निश्चित क्षेत्र को कैप्चर करने के लिए एक चयन बनाएँ।" #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "️ ⏲️रिकॉर्डिंग शुरू करने से पहले तैयारी के लिए विलंब समय सेट करें।" #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ ️माउस पॉइंटर छुपाएँ या दिखाएँ।" #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "अपनी रिकॉर्डिंग को सहेजने का स्थान चुनें।" #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ उपयोगी कीबोर्ड शॉर्टकट का उपयोग करें।" #~ msgid "Toggle Computer Sounds" #~ msgstr "कंप्यूटर की ध्वनियों को रिकार्ड करने या ना करने को बदलें" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "Record Computer Sounds" #~ msgstr "कंप्यूटर की ध्वनियाँ रिकार्ड करें" #~ msgid "Record From Microphone" #~ msgstr "माइक्रोफ़ोन से रिकॉर्ड करें" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "विलंब समय रद्द करें" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "स्क्रीन रिकार्डिंग पूर्ण हुई!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "रिकार्डिंग को {} में सहेज दिया गया है।" #~ msgid "Open File" #~ msgstr "फाइल खोलें" #~ msgid "Screencast Portal Request Error" #~ msgstr "स्क्रीनकास्ट पोर्टल से अनुरोध में त्रुटि (Error)" #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "बिना किसी विकर्षण के अपनी स्क्रीन को सीधे और दर्द रहित तरीके से कैप्चर करें।" SeaDve-Kooha-12ed227/po/hr.po000066400000000000000000000507431505224011700156450ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Milo Ivir , 2021, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-12-13 16:45+0000\n" "Last-Translator: Milo Ivir \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.9-rc\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Snimi ekran na elegantan način" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Videosnimka ekrana;rekorder;ekran;video;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Snimi ekran na intuitivan i jednostavan način." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha je jednostavan program za snimanje ekrana s minimalističkim sučeljem. " "Jednostavno pritisni gumb za snimanje bez potrebe za konfiguriranjem hrpe " "postavki." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Glavne Kooha funkcije uključuju:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Snimanje mikrofona, zvukova računala ili oboje istovremeno" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Podrška za WebM, MP4, GIF i Matroska formate" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Biranje monitora ili dio ekrana za snimanje" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Konfigurabilno mjesto spremanja, vidljivost pokazivača, broj sličica u " "sekundi i kašnjenje" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Eksperimentalno hardverski ubrzano kodiranje" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Opcije snimanja i gumb za pokretanje snimanja" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Trajanje snimanja u tijeku i gumb za prekidanje snimanja" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "Odbrojavanje do početka snimanja i gumb za otkazivanje snimanja" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Odaberi područje" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Odustani" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Gotovo" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Resetiraj odabir" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Opće" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Kašnjenje (sekunde)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Vremenski interval prije početka snimanja" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Mapa sa snimanjima" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Odredišna mapa za snimanja" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Format" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Broj sličica u sekundi" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Otvori izbornik" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Pokaži postavke" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Pokaži prečace" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Zatvori" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Snimanje" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Uključi/isključi snimanje" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Uključi/isključi pauzu" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Prekini snimanje" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Postavke" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Uključi/isključi zvukove računala" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Uključi/isključi mikrofon" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Uključi/isključi pokazivač" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Glavni izbornik" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Snimi monitor ili prozor" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Snimi odabrano područje ekrana" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Uključi zvukove računala" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Isključi zvukove računala" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Uključi mikrofon" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Isključi mikrofon" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Pokaži pokazivač" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Sakrij pokazivač" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Počni snimati" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Snimi" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Zaboravi prethodno odabrane izvore videa" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Prekini snimanje" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Prekini" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Zaustavi snimanje" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Snimanje za …" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Otkaži snimanje" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Završavanje …" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Postavke" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Tipkovni prečaci" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Kooha informacije" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Milo Ivir <mail@milotype.de>" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Doniraj (kupi mi kavu)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Prevedi" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Videosnimka ekrana snimljena" #: src/application.rs:144 msgid "Show in Files" msgstr "Prikaži u mapi „Datoteke”" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Zadani audio uređaj nije pronađen" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Osiguraj da je PulseAudio instaliran u tvom sustavu." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} sat" msgstr[1] "{time} sata" msgstr[2] "{time} sati" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minuta" msgstr[1] "{time} minute" msgstr[2] "{time} minuta" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} sekunda" msgstr[1] "{time} sekunde" msgstr[2] "{time} sekundi" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Neuspjelo postavljanje mape snimaka" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Ovaj broj sličica u sekundi može prouzročiti probleme za odabrani format." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Ovo je eksperimentalan i nepodržan format." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Bez" #: src/recording.rs:42 msgid "No active profile" msgstr "Nema aktivnog profila" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Pokretanje snimanja nije uspjelo" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Pogledaj {link} za pomoć." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Jedan GStreamer dodatak možda nije instaliran." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Osiguraj da mjesto za spremanje postoji i da je dostupno." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Dogodila se greška tijekom snimanja" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Otvaranje putanje „{path}” za zapisivanje nije uspjelo" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Odaberi mapu za snimke" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Uključivanje/Isključivanje pauze nije uspjelo" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Trenutačno je jedno snimanje u tijeku. Trenutno zatvaranje aplikacije može " "prouzročiti da se snimka neće moći reproducirati. Prekini snimanje prije " "zatvaranje aplikacije." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Prekidanje će poništiti obradu i može prouzročiti da se snimka neće moći " "reproducirati." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Zatvoriti aplikaciju?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Kopiraj u međuspremnik" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Kopirano u međuspremnik" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Pokaži detaljnu grešku" #: src/window/mod.rs:289 msgid "Help" msgstr "Pomoć" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "U redu, razumijem" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Otvoriti postavke?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Prethodno odabrani format možda nije bio dostupan. Otvori postavke i odaberi " "format za nastavljanje snimanja." #: src/window/mod.rs:308 msgid "Later" msgstr "Kasnije" #: src/window/mod.rs:310 msgid "Open" msgstr "Otvori" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Jedno snimanje je u tijeku" #: src/window/mod.rs:509 msgid "Paused" msgstr "Zaustavljeno" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normalo" #: src/window/mod.rs:547 msgid "Selection" msgstr "Odabir" #~ msgid "Failed to start device monitor" #~ msgstr "Pokretanje monitora uređaja nije uspjelo" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Povezivanje na PulseAudio daemon nije uspjelo" #~ msgid "No microphone source found" #~ msgstr "Nije pronađen nijedan izvor mikrofona" #~ msgid "No desktop speaker source found" #~ msgstr "Nije pronađen nijedan izvor zvučnika" #~ msgid "Ok" #~ msgstr "U redu" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Ova brzina kadrova može prouzročiti prebleme." #~ msgid "approx." #~ msgstr "približno" #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ Biranje monitora, prozora ili dio ekrana za snimanje" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Biranje višestrukih izvora" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022. Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Pritisni ovdje za gledanje videa." #~ msgid "Failed to select saving location" #~ msgstr "Biranje mjesta za spremanje nije uspjelo" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Otvaranje datoteke za zapisivanje nije uspjelo" #~ msgid "Donate (Liberapay)" #~ msgstr "Doniraj (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Doniraj (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Pogledaj {} za pomoć." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Neuspjelo otvaranje mape „{}” za pisanje" #~ msgid "_Cancel" #~ msgstr "_Odustani" #~ msgid "_Select" #~ msgstr "Oda_beri" #~ msgid "No folder selected" #~ msgstr "Nije odabrana nijedna mapa" #~ msgid "Please choose a folder and try again." #~ msgstr "Odaberi mapu i pokušaj ponovo." #~ msgid "Cannot access “{}”" #~ msgstr "Nemoguć pristup na „{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Odaberi pristupačno mjesto i pokušaj ponovo." #~ msgid "Enable Desktop Sounds" #~ msgstr "Aktiviraj desktop zvukove" #~ msgid "Disable Desktop Sounds" #~ msgstr "Deaktiviraj desktop zvukove" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Snimi ekran bez poteškoća." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Snimi mikrofon, zvukove računala ili oboje istovremeno." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Podrška za formate WebM, MP4, GIF i MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Biranje više izvora." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Opcionalno hardverski ubrzano kodiranje" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Odaberi monitor ili prozor za snimanje." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Stvori odabir za snimanje određenog područja na ekranu." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Postavi odgađanje početka snimanja." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Sakrij ili pokaži pokazivač miša." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Odaberi mjesto za spremanje snimke." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Koristi korisne tipkovne prečace." #~ msgid "Toggle Computer Sounds" #~ msgstr "Uključi/isključi zvukove računala" #~ msgid "_Delay" #~ msgstr "_Odgoda" #~ msgid "3 seconds" #~ msgstr "3 s" #~ msgid "5 seconds" #~ msgstr "5 s" #~ msgid "10 seconds" #~ msgstr "10 s" #~ msgid "_Video Format" #~ msgstr "_Videoformat" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Spremi u …" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Dodatak GStreamer možda nije instaliran. Ako je instaliran, ali i dalje " #~ "ne radi ispravno, prijavi problem na Kooha stranici za prijavu problema." #~ msgid "Record Computer Sounds" #~ msgstr "Snimi zvukove računala" #~ msgid "Record From Microphone" #~ msgstr "Snimi s mikrofona" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Prekini odgodu" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Autorska prava 2021. Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Videosnimka ekrana snimljena!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Snimka je spremljena u „{}”" #~ msgid "Open File" #~ msgstr "Otvori datoteku" #~ msgid "Screencast Portal Request Error" #~ msgstr "Greška u zahtjevu portala videosnimaka ekrana" #~ msgid "Pipeline Build Error" #~ msgstr "Greška u procesu izgradnje" #~ msgid "Recording Error" #~ msgstr "Greška u snimanju" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Provjeri ovisnosti i stranicu It Doesn't Work (Ne radi)." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Provjeri postoji li mjesto spremanja ili je li dostupno. Ako stvarno " #~ "postoji ili je dostupno, dogodilo se nešto krivo. Prijavi problem na Kooha stranici za " #~ "prijavu problema." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Provjeri postoji li mjesto za spremanje. Ako postoji, nešto ne radi " #~ "ispravno te prijavi problem na Kooha stranici za prijavu problema." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "GStreamer priključak možda nije instaliran. Ako nije, prijavi na Koohinu stranicu za " #~ "prijavu problema." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Provjeri postoji li mjesto za spremanje. Ako ne, dogodilo se nešto krivo. " #~ "Prijavi ovaj problem na Koohinu stranicu za prijavu problema." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "Snimi ekran na jednostavan i bezbolan način bez ometanja." SeaDve-Kooha-12ed227/po/hu.po000066400000000000000000000361341505224011700156460ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Balázs Úr , 2021. # Cimbora , 2023. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2023-05-27 20:50+0000\n" "Last-Translator: Cimbora \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.18-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Vegye fel a képernyőjét elegánsan" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Képernyőfelvétel;Felvevő;Rögzítő;Képernyő;Videó;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "Vegye fel a képernyőjét intuitív és egyszerű módon, zavaró tényezők nélkül." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "A Kooha egy egyszerű képernyőfelvevő minimalista felülettel. Csak a felvétel " "gombra kell kattintania, anélkül hogy egy csomó beállítást be kellene " "állítania." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "A Kooha fő funkciói a következők:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Mégse" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Általános" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Menü megnyitása" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Gyorsbillentyűk megjelenítése" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Kilépés" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Felvétel" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Felvétel ki- és bekapcsolása" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Szünet ki- és bekapcsolása" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Beállítások" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Mikrofon ki- és bekapcsolása" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Mutató ki- és bekapcsolása" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Főmenü" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Egy monitor vagy ablak felvétele" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "A képernyő kijelölésének felvétele" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Mutató megjelenítése" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Felvétel" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Leállítás" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Felvétel ekkor…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Kiürítés…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Beállítások" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Gyorsbillentyűk" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "A Kooha _névjegye" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Úr Balázs <balazs@urbalazs.hu>" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "" #: src/application.rs:144 msgid "Show in Files" msgstr "" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Nincs" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Felvételek mappájának kiválasztása" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "Szüneteltetve" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normál" #: src/window/mod.rs:547 msgid "Selection" msgstr "Kijelölés" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "_Cancel" #~ msgstr "_Mégse" #~ msgid "_Select" #~ msgstr "_Kiválasztás" #~ msgid "Cannot access “{}”" #~ msgstr "A(z) „{}” nem érhető el" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Válasszon egy elérhető helyet, és próbálja újra." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 A képernyő felvétele mindenféle gond nélkül." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ A mikrofon, a számítógép hangjai vagy mindkettő egyidejű felvétele." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 WebM, MP4, GIF és MKV formátumok támogatása." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Több forrás kiválasztása." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Választható hardveresen gyorsított kódolás." #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Egy monitor vagy egy ablak kiválasztása a felvételhez." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "" #~ "🖼️ Kijelölés létrehozása a képernyő egy bizonyos területének felvételéhez." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "" #~ "⏲️ Késleltetés beállítása az előkészítéshez, mielőtt elindítja a felvételt." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Az egérmutató elrejtése vagy megjelenítése." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 A felvétel mentési helyének kiválasztása." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Hasznos gyorsbillentyűk használata." #~ msgid "Toggle Computer Sounds" #~ msgstr "Számítógép hangjainak ki- és bekapcsolása" #~ msgid "_Delay" #~ msgstr "_Késleltetés" #~ msgid "5 seconds" #~ msgstr "5 másodperc" #~ msgid "10 seconds" #~ msgstr "10 másodperc" #~ msgid "_Video Format" #~ msgstr "_Videoformátum" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Mentés ide…" #~ msgid "Record Computer Sounds" #~ msgstr "Számítógép hangjainak felvétele" #~ msgid "Record From Microphone" #~ msgstr "Felvétel a mikrofonból" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Késleltetés megszakítása" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Képernyőfelvétel rögzítve!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "A felvétel ide lett elmentve: „{}”" #~ msgid "Open File" #~ msgstr "Fájl megnyitása" #~ msgid "Screencast Portal Request Error" #~ msgstr "Képernyőfelvétel portálkérési hiba" #~ msgid "Pipeline Build Error" #~ msgstr "Csővezeték-összeállítási hiba" #~ msgid "Recording Error" #~ msgstr "Felvételi hiba" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Győződjön meg arról, hogy ellenőrizte-e a futásidejű függőségeket, " #~ "illetve elolvasta-e az It Doesn't Work angol nyelvű oldalt." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Egy GStreamer-bővítmény esetleg nincs telepítve. Ellenkező esetben " #~ "jelentse a Kooha " #~ "hibakövető oldalán." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Győződjön meg arról, hogy a mentési hely létezik-e. Ellenkező esetben " #~ "valami elromlott, és jelentse a Kooha hibakövető oldalán." SeaDve-Kooha-12ed227/po/ia.po000066400000000000000000000241241505224011700156170ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # "Emilio S." , 2025. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2025-08-05 23:01+0000\n" "Last-Translator: \"Emilio S.\" \n" "Language-Team: Interlingua \n" "Language: ia\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: Weblate 5.13-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Cancellar" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "General" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Aperir menu" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "" #: data/resources/ui/shortcuts.ui:26 #, fuzzy msgid "Show Shortcuts" msgstr "Monstrar vias breve" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Quitar" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Menu principal" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Stoppar" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Preferentias" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "Vias breve de _claviero" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Facer un donation (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Traducer" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "" #: src/application.rs:144 msgid "Show in Files" msgstr "" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Copiate al area de transferentia" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "" #: src/window/mod.rs:546 msgid "Normal" msgstr "" #: src/window/mod.rs:547 msgid "Selection" msgstr "" SeaDve-Kooha-12ed227/po/id.po000066400000000000000000000563541505224011700156340ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # liimee , 2021, 2022, 2023. # Reza Almanda , 2021. # Sucipto , 2021. # Sucipto , 2021. # Hervy Qurrotul Ainur Rozi , 2022. # Muhammad Akbar Yanuar Mantari , 2023. # Nur Ihsan , 2024. # Taufiq H , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-03-26 12:59+0000\n" "Last-Translator: Taufiq H \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.5-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Rekam layar Anda dengan elegan" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Perekam;Layar;Video;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Rekam layar Anda dengan cara yang intuitif dan mudah tanpa gangguan." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha adalah perekam layar yang sederhana dengan antarmuka yang minimalis. " "Anda hanya perlu menekan tombol rekam tanpa harus mengkonfigurasi beberapa " "pengaturan." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Fitur-fitur utama Kooha termasuk yang berikut ini:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Rekam mikrofon, audio desktop, atau keduanya secara bersamaan" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Dukungan untuk format WebM, MP4, GIF, dan Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Pilih monitor atau bagian dari layar untuk direkam" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Lokasi penyimpanan, apakah kursor ditampilkan, laju bingkai, dan penundaan " "dapat diatur" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Uji coba pengodean menggunakan akselarasi perangkat keras" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Pilih Area" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Batal" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Selesai" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Atur Ulang Pilihan" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Umum" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Penundaan (Detik)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Interval waktu sebelum memulai perekaman" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Folder Rekaman" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Folder tujuan untuk hasil perekaman" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Format" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Laju Bingkai" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Buka Menu" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Tampilkan Preferensi" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Tampilkan Pintasan" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Keluar" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Merekam" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Tombol Perekaman" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Tombol Jeda" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Batal Merekam" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Pengaturan" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Tombol Audio Desktop" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Tombol Mikrofon" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Tombol Penunjuk" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Menu Utama" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Rekam Monitor atau Jendela" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Rekam Potongan dari Layar" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Aktifkan Audio Desktop" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Nonaktifkan Audio Desktop" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Aktifkan Mikrofon" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Nonaktifkan Mikrofon" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Tampilkan Kursor" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Sembunyikan Kursor" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Mulai Merekam" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Rekam" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Lupakan Sumber Video yang Dipilih Sebelumnya" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Berhenti Merekam" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Berhenti" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Jeda Perekaman" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Merekam dalam…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Batal Merekam" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Membersihkan…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Preferensi" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Pintasan Papan Ketik" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Tentang Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" "@liimee,Hervy Qurrotul Ainur Rozi,Reza Almanda,@mantarimay,@nurihsan_m," "@tmhidayat" #: src/about.rs:45 #, fuzzy msgid "Donate (Buy Me a Coffee)" msgstr "Donasi (Traktir Saya Kopi)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Terjemahkan" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Rekaman layar selesai" #: src/application.rs:144 msgid "Show in Files" msgstr "Tampilkan di Berkas" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Gagal menemukan perangkat audio default" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Pastikan Anda telah memasang PulseAudio pada sistem Anda." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} jam" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "menit" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "detik" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Gagal mengatur folder hasil perekaman" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Frame rate ini mungkin akan menyebabkan isu terhadap performa pada format " "yang dipilih." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Format ini eksperimental dan tidak didukung." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Tidak ada" #: src/recording.rs:42 msgid "No active profile" msgstr "Tidak ada profil yang aktif" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Gagal memulai perekaman" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Rujukan {link} untuk bantuan." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Plugin GStreamer mungkin tidak terpasang." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Pastikan lokasi penyimpanan ada dan dapat diakses." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Kesalahan terjadi ketika merekam" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Gagal membuka “{path}” untuk bekerja" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Pilih Folder Rekaman" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Galat menekan tombol jeda" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Sebuah perekaman sedang berlangsung. Keluar sekarang dapat menyebabkan hasil " "perekaman tidak dapat diputar. Silahkan hentikan perekaman sebelum keluar." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Keluar akan menghentikan proses berjalan dan dapat menyebabkan hasil " "perekaman tidak dapat diputar." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Keluar dari Aplikasi?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Salin ke papan klip" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Disalin ke papan klip" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Tampilkan kesalahan secara menyeluruh" #: src/window/mod.rs:289 msgid "Help" msgstr "Bantuan" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Ok, Mengerti" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Buka Preferensi?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Format yang sebelumnya dipilih mungkin tidak tersedia. Buka preferensi dan " "pilih format lain untuk terus merekam." #: src/window/mod.rs:308 msgid "Later" msgstr "Nanti" #: src/window/mod.rs:310 msgid "Open" msgstr "Buka" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Perekaman sedang berlangsung" #: src/window/mod.rs:509 msgid "Paused" msgstr "Dijeda" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Potongan" #~ msgid "Failed to start device monitor" #~ msgstr "Gagal memulai perangkat monitor" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Gagal terhubung dengan daemon PulseAudio" #~ msgid "No microphone source found" #~ msgstr "Tak ditemukan sumber mikrofon" #~ msgid "No desktop speaker source found" #~ msgstr "Sumber pengeras suara desktop tidak ditemukan" #~ msgid "Ok" #~ msgstr "OK" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Frame rate ini mungkin dapat menyebabkan masalah performa." #~ msgid "approx." #~ msgstr "perkiraan" #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ Pilih monitor, jendela, atau sebagian dari layar yang ingin direkam" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Pilih beberapa sumber" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Klik di sini untuk membuka video." #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Gagal membuka berkas untuk bekerja" #~ msgid "Failed to select folder" #~ msgstr "Gagal memilih folder" #~ msgid "Donate (Liberapay)" #~ msgstr "Berdonasi (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Berdonasi (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Lihat {} untuk bantuan." #~ msgid "_Cancel" #~ msgstr "_Batal" #~ msgid "_Select" #~ msgstr "Pi_lih" #~ msgid "No folder selected" #~ msgstr "Tak ada folder yang dipilih" #~ msgid "Please choose a folder and try again." #~ msgstr "Harap pilih folder dan coba lagi." #~ msgid "Cannot access “{}”" #~ msgstr "Tidak dapat mengakses “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Harap pilih lokasi yang dapat diakses dan coba lagi." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Rekam layar Anda tanpa repot-repot." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Rekam mikrofon Anda, suara komputer, atau keduanya di waktu yang sama." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Mendukung format WebM, MP4, GIF, dan MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Pilihan berbagai sumber." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Opsi pengkodean dengan percepatan perangkat keras" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Pilih monitor atau jendela yang ingin direkam." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Buat seleksi untuk menangkap area tertentu dari layar anda." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Pasang penundaan untuk bersiap-siap sebelum mulai merekam." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Sembunyikan atau tampilkan penunjuk tetikus." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Pilih lokasi penyimpanan untuk rekaman Anda." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Manfaatkan pintasan keyboard yang berguna." #~ msgid "Toggle Computer Sounds" #~ msgstr "Toggle Suara Komputer" #~ msgid "_Delay" #~ msgstr "_Penundaan" #~ msgid "5 seconds" #~ msgstr "5 detik" #~ msgid "10 seconds" #~ msgstr "10 detik" #~ msgid "_Video Format" #~ msgstr "Format _Video" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Simpan di…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Sebuah plugin GStreamer mungkin tidak terpasang. Jika itu sudah terpasang " #~ "namun masih belum bekerja, harap laporkan ke halaman masalah Kooha." #~ msgid "Record Computer Sounds" #~ msgstr "Rekam Suara Komputer" #~ msgid "Record From Microphone" #~ msgstr "Rekam Dari Mikrofon" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Batalkan penundaan" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Hak Cipta 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Screencast Direkam!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Rekaman telah disimpan di \"{}\"" #~ msgid "Open File" #~ msgstr "Buka Berkas" #~ msgid "Screencast Portal Request Error" #~ msgstr "Kesalahan Permintaan Screencast Portal" #~ msgid "Pipeline Build Error" #~ msgstr "Kesalahan Pipeline Build" #~ msgid "Recording Error" #~ msgstr "Kesalahan Perekaman" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Pastikan untuk memeriksa ketergantungan runtime dan laman Ini Tidak Berfungsi." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Pastikan lokasi penyimpanan ada dan dapat diakses. Jika lokasi tersebut " #~ "benar-benar ada dan dapat diakses, ada masalah dan harap melaporkannya ke " #~ "halaman masalah Kooha." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Sebuah plugin GStreamer mungkin belum terpasang. Jika tidak, harap " #~ "laporkan ke halaman " #~ "masalah Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Pastikan lokasi penyimpanan tersedia. Jika tidak, ada yang tidak beres " #~ "dan lapor ke laman " #~ "masalah Kooha." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "Tangkap layar Anda dengan secara langsung dan mudah tanpa gangguan." #~ msgid "" #~ "Make sure to check for the runtime dependencies and \"It Doesn't Work\" " #~ "page in Kooha's readme page. ({})" #~ msgstr "" #~ "Jangan lupa untuk memeriksa dependensi runtime dan halaman \"It Doesn't " #~ "Work\" di halaman readme Konoha. ({})" #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's " #~ "issue page. ({})" #~ msgstr "" #~ "Sebuah plugin GStreamer mungkin tidak terpasang. Jika tidak, harap " #~ "laporkan ke halaman masalah Kooha. ({})" #~ msgid "Screencast Portal Request Failed" #~ msgstr "Screencast Portal Request Gagal" #~ msgid "Recording Failed" #~ msgstr "Perekaman Gagal" #~ msgid "Pipeline Build Failed" #~ msgstr "Pipeline Build Gagal" #~ msgid "Sorry! An error has occurred." #~ msgstr "Maaf! Sebuah kesalahan terjadi." #~ msgid "Please choose an accessible location and retry." #~ msgstr "Mohon pilih tempat yang dapat diakses dan coba lagi." #~ msgid "Select a Folder" #~ msgstr "Pilih folder" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Pilih area layar Anda yang ingin direkam." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Dukungan bebas untuk format Matroska dan WebM." #~ msgid "Open menu" #~ msgstr "Buka menu" #~ msgid "Show keyboard shortcuts" #~ msgstr "Tampilkan pintasan keyboard" #~ msgid "Toggle record" #~ msgstr "Toggle perekaman" #~ msgid "Cancel delay" #~ msgstr "Batalkan penundaan" #~ msgid "Toggle computer sounds" #~ msgstr "Toggle suara komputer" #~ msgid "Toggle microphone" #~ msgstr "Toggle mikrofon" #~ msgid "Toggle pointer" #~ msgstr "Toggle penunjuk" #~ msgid "Delay" #~ msgstr "Penundaan" #~ msgid "Video Format" #~ msgstr "Format Video" #~ msgid "Save to…" #~ msgstr "Simpan di…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Pintasan Keyboard" #~ msgid "About Kooha" #~ msgstr "Tentang Kooha" #~ msgid "Sorry! An error has occured." #~ msgstr "Maaf! Sebuah kesalahan telah terjadi." #~ msgid "Videos" #~ msgstr "Video-video" #, fuzzy #~ msgid "Failed to create session." #~ msgstr "Gagal membuat session." #~ msgid "Select" #~ msgstr "Pilih" #~ msgid "Inaccessible location “{directory}”" #~ msgstr "Lokasi tidak dapat diakses “{directory}”" #~ msgid "The recording has been saved in {saving_location}" #~ msgstr "Rekaman telah disimpan di {saving_location}" #, fuzzy #~ msgid "Toggle capture mode" #~ msgstr "Toggle mode capture" #~ msgid "Full Screen" #~ msgstr "Layar Penuh" #~ msgid "Processing" #~ msgstr "Memproses" #~ msgid "Save location not set" #~ msgstr "Lokasi penyimpanan belum diatur" #~ msgid "Recording cannot start" #~ msgstr "Tidak dapat memulai perekaman" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "Lokasi penyimpanan yang telah Anda pilih mungkin sudah dihapus." #~ msgid "The recording has been saved in" #~ msgstr "Rekaman telah disimpan di" #~ msgid "Record computer sounds" #~ msgstr "Toggle suara komputer" #~ msgid "Record from microphone" #~ msgstr "Rekam dari mikrofon" #~ msgid "Show pointer" #~ msgstr "Tampilkan penunjuk" #~ msgid "Elegantly record your screen " #~ msgstr "Rekam layar Anda dengan elegan " #~ msgid "Simple screen recorder" #~ msgstr "Perekam layar sederhana" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Kooha adalah perekam layar sederhana yang dibangun menggunakan GTK. Kooha " #~ "memungkinkan Anda untuk merekam layar Anda serta suara dari mikrofon atau " #~ "desktop Anda." SeaDve-Kooha-12ed227/po/it.po000066400000000000000000000627221505224011700156500ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Nicolas Mariniello , 2021. # J. Lavoie , 2021. # Dave Patrick , 2021. # albanobattistella , 2021, 2022, 2023, 2024. # Ruggero Turra , 2021. # Michael Moroni , 2021, 2023. # Andrea Brandi , 2022, 2023. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-09-30 11:18+0000\n" "Last-Translator: albanobattistella \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.8-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Registra il tuo schermo elegantemente" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Registratore;Schermo;Video;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Cattura il tuo schermo in modo intuitivo e diretto senza distrazioni." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha è un registratore di schermo semplice con un'interfaccia minimalista. " "Si può semplicemente fare clic sul pulsante di registrazione senza dover " "configurare un sacco di impostazioni." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Le caratteristiche principali di Kooha sono le seguenti:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Registra microfono, audio desktop o entrambi contemporaneamente" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Supporto per i formati WebM, MP4, GIF e Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Seleziona un monitor o una porzione dello schermo da registrare" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Posizione di salvataggio, visibilità del puntatore, frame rate e ritardo " "configurabili" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Codifica sperimentale con accelerazione hardware" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Opzioni di registrazione e pulsante per avviare la registrazione" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" "Durata della registrazione in corso e pulsante per interrompere la " "registrazione" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" "Conto alla rovescia per avviare la registrazione e pulsante per annullare la " "registrazione" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Seleziona Area" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Annulla" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Fatto" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Ripristina selezione" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Generale" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Ritardo (secondi)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Intervallo di tempo prima dell'inizio della registrazione" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Cartella registrazioni" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Cartella di destinazione per le registrazioni" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Formato" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Frame Rate" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Apri Menu" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Mostra preferenze" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Mostra Scorciatoie" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Esci" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "In registrazione" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Interruttore Registrazione" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Attiva/disattiva pausa" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Cancella registrazione" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Impostazioni" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Attiva/disattiva l'audio del desktop" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Attiva/disattiva microfono" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Attiva/disattiva puntatore" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Menu principale" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Cattura uno schermo o una finestra" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Cattura una selezione di schermo" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Abilita audio desktop" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Disabilita l'audio del desktop" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Abilita microfono" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Disabilita microfono" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Mostra il puntatore" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Nascondi puntatore" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Inizia a registrare" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Registra" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Dimentica le sorgenti video selezionate in precedenza" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Interrompi registrazione" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Ferma" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Metti in pausa la registrazione" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "In registrazione tra…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Cancella registrazione" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Pulizia…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "Im_postazioni" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Scorciatoie da tastiera" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Informazioni su Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Albano Battistella, Andrea Brandi, Michael Moroni, Nicolas Mariniello" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Fai una donazione (offrimi un caffè)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Traduci" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Screencast registrato" #: src/application.rs:144 msgid "Show in Files" msgstr "Mostra in File" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Impossibile trovare il dispositivo audio predefinito" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Assicurati di avere PulseAudio installato nel tuo sistema." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} ora" msgstr[1] "{time} ore" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minuto" msgstr[1] "{time} minuti" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} secondo" msgstr[1] "{time} secondi" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Impossibile impostare la cartella delle registrazioni" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Questa frequenza fotogrammi potrebbe causare problemi di prestazioni nel " "formato selezionato." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Questo formato è sperimentale e non supportato." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Nessuno" #: src/recording.rs:42 msgid "No active profile" msgstr "Nessun profilo attivo" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Impossibile avviare la registrazione" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Dai un'occhiata a {link} per ricevere aiuto." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Un plug-in GStreamer potrebbe non essere installato." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Assicurati che la posizione di salvataggio esista e sia accessibile." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Si è verificato un errore durante la registrazione" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Impossibile aprire \"{percorso}\" per la scrittura" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Seleziona la cartella di registrazione" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Impossibile attivare/disattivare la pausa" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Una registrazione è attualmente in corso. L'uscita immediata potrebbe " "rendere la registrazione non riproducibile. Si prega di interrompere la " "registrazione prima di uscire." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "L'uscita annullerà l'elaborazione e potrebbe rendere la registrazione non " "riproducibile." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Uscire dall'applicazione?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Copia negli appunti" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Copiato negli appunti" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Visualizza errore dettagliato" #: src/window/mod.rs:289 msgid "Help" msgstr "Aiuto" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Ok, ho capito" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Aprire le preferenze?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Il formato selezionato in precedenza potrebbe non essere disponibile. Apri " "le preferenze e seleziona un formato per continuare la registrazione." #: src/window/mod.rs:308 msgid "Later" msgstr "Dopo" #: src/window/mod.rs:310 msgid "Open" msgstr "Apri" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "È in corso una registrazione" #: src/window/mod.rs:509 msgid "Paused" msgstr "In pausa" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normale" #: src/window/mod.rs:547 msgid "Selection" msgstr "Sezione" #~ msgid "Failed to start device monitor" #~ msgstr "Impossibile avviare il monitoraggio del dispositivo" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Impossibile connettersi al demone PulseAudio" #~ msgid "No microphone source found" #~ msgstr "Nessuna sorgente microfono trovata" #~ msgid "No desktop speaker source found" #~ msgstr "Nessuna fonte di altoparlanti desktop trovata" #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Questo frame rate può causare problemi di prestazioni." #~ msgid "approx." #~ msgstr "circa" #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ Seleziona un monitor, una finestra o una parte dello schermo da " #~ "registrare" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Selezione di più fonti" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Clicca qui per vedere il video." #~ msgid "Failed to select saving location" #~ msgstr "Impossibile selezionare la posizione di salvataggio" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Impossibile aprire il file per la scrittura" #~ msgid "Failed to select folder" #~ msgstr "Impossibile selezionare la cartella" #~ msgid "Donate (Liberapay)" #~ msgstr "Dona (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Dona (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Dai un'occhiata a {} per assistenza." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Impossibile aprire \"{}\" per la scrittura" #~ msgid "_Cancel" #~ msgstr "_Annulla" #~ msgid "_Select" #~ msgstr "_Seleziona" #~ msgid "No folder selected" #~ msgstr "Nessuna cartella selezionata" #~ msgid "Please choose a folder and try again." #~ msgstr "Scegli una cartella e riprova." #~ msgid "Cannot access “{}”" #~ msgstr "Impossibile accedere a \"{}\"" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Per favore scegli una posizione accessibile e prova di nuovo." #~ msgid "Enable Desktop Sounds" #~ msgstr "Abilita i suoni del desktop" #~ msgid "Disable Desktop Sounds" #~ msgstr "Disabilita i suoni del desktop" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Cattura il tuo schermo senza problemi." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Registra il tuo microfono, i suoni del computer o entrambi allo stesso " #~ "tempo." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Supporta i formati WebM, MP4, GIF, e MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Selezione di più fonti." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Codifica con accelerazione hardware opzionale" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Seleziona il monitor o la finestra da registrare." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "" #~ "🖼️ Crea una selezione per catturare un'area specifica dal tuo schermo." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "" #~ "⏲️ Imposta il ritardo da preparare prima di iniziare la registrazione." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Nascondi o mostra il puntatore del mouse." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Scegli una posizione di salvataggio per la tua registrazione." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Utilizza utili scorciatoie da tastiera." #~ msgid "Toggle Computer Sounds" #~ msgstr "Attiva/disattiva suoni del computer" #~ msgid "_Delay" #~ msgstr "_Ritardo" #~ msgid "3 seconds" #~ msgstr "3 secondi" #~ msgid "5 seconds" #~ msgstr "5 secondi" #~ msgid "10 seconds" #~ msgstr "10 secondi" #~ msgid "_Video Format" #~ msgstr "_Formato video" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Salva in…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Un plugin GStreamer potrebbe non essere installato. Se è installato ma " #~ "continua a non funzionare correttamente, segnalarlo alla pagina dei problemi di " #~ "Kooha." #~ msgid "Record Computer Sounds" #~ msgstr "Registra i suoni del computer" #~ msgid "Record From Microphone" #~ msgstr "Registra dal microfono" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Annulla ritardo" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Video dello schermo registrato!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "La registrazione è stata salvata in \"{}\"" #~ msgid "Open File" #~ msgstr "Apri file" #~ msgid "Screencast Portal Request Error" #~ msgstr "Errore di richiesta portale dello screencast" #~ msgid "Pipeline Build Error" #~ msgstr "Errore di creazione della pipeline" #~ msgid "Recording Error" #~ msgstr "Errore di registrazione" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Controllare le dipendenze di runtime e la pagina se non funziona." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Assicurarsi che la posizione di salvataggio esista o sia accessibile. Se " #~ "esiste effettivamente o è accessibile, qualcosa è andato storto. " #~ "Segnalare il problema alla pagina dei problemi di Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Assicurati che la posizione di salvataggio esista. Se esiste " #~ "effettivamente, qualcosa è andato storto e segnalalo a pagina dei problemi di Kohoha." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Un plugin GStreamer potrebbe non essere installato. In caso contrario, si " #~ "prega di segnalare a pagina dei problemi di Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Assicurati che la posizione di salvataggio esista. In caso contrario, se " #~ "qualcosa è andato storto segnalalo a pagine dei problemi di Kooha." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "" #~ "Cattura il tuo schermo in modo diretto e indolore senza distrazioni." #~ msgid "" #~ "Make sure to check for the runtime dependencies and \"It Doesn't Work\" " #~ "page in Kooha's readme page. ({})" #~ msgstr "" #~ "Assicurati di controllare le dipendenze a runtime e la pagina \"It " #~ "Doesn't Work\" nel file readme di Kooha. ({})" #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's " #~ "issue page. ({})" #~ msgstr "" #~ "Un plugin GStreamer potrebbe non essere installato. Se così, per favore " #~ "riporta nella pagina dei problemi di Kooha. ({})" #~ msgid "Screencast Portal Request Failed" #~ msgstr "Richiesta del portale per la condivisione dello schermo fallita" #~ msgid "Recording Failed" #~ msgstr "Registrazione Fallita" #~ msgid "Pipeline Build Failed" #~ msgstr "Costruzione condotto fallita" #~ msgid "Please choose an accessible location and retry." #~ msgstr "Per favore scegli un percorso accessibile e riprova." #~ msgid "Select a Folder" #~ msgstr "Seleziona una Cartella" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Seleziona un'area del tuo schermo da registrare." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Supporto per i formati gratuiti Matroska e WebM." #~ msgid "Open menu" #~ msgstr "Apri il menù" #~ msgid "Show keyboard shortcuts" #~ msgstr "Mostra scorciatoie da tastiera" #~ msgid "Toggle record" #~ msgstr "Registra" #~ msgid "Toggle record pause" #~ msgstr "Attiva/disattiva la pausa" #~ msgid "Cancel delay" #~ msgstr "Cancella il ritardo" #~ msgid "Toggle computer sounds" #~ msgstr "Attiva i suoni del computer" #~ msgid "Toggle microphone" #~ msgstr "Attiva il microfono" #~ msgid "Toggle pointer" #~ msgstr "Attiva il puntatore" #~ msgid "Delay" #~ msgstr "Ritardo" #~ msgid "Video Format" #~ msgstr "Formato video" #~ msgid "Save to…" #~ msgstr "Salva in…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Scorciatoie da tastiera" #~ msgid "About Kooha" #~ msgstr "A proposito di Kooha" #~ msgid "Sorry! An error has occured." #~ msgstr "Spiacente! Si è verificato un errore." #~ msgid "Videos" #~ msgstr "Video" #~ msgid "Failed to create session." #~ msgstr "Impossibile creare la sessione." #~ msgid "Failed to select sources." #~ msgstr "Impossibile selezionare le sorgenti." #~ msgid "Select" #~ msgstr "Seleziona" #~ msgid "Inaccessible location “{directory}”" #~ msgstr "Posizione inaccessibile “{directory}”" #~ msgid "The recording has been saved in {saving_location}" #~ msgstr "La registrazione è stata salvata in {saving_location}" #~ msgid "Inaccessible location '{directory}'" #~ msgstr "Posizione inaccessibile «{directory}»" #~ msgid "Toggle capture mode" #~ msgstr "Cambia modalità di cattura" #~ msgid "Full Screen" #~ msgstr "Schermo Intero" #~ msgid "Processing" #~ msgstr "Elaborazione" #~ msgid "Save location not set" #~ msgstr "Percorso di salvataggio non impostato" #~ msgid "Recording cannot start" #~ msgstr "La registrazione non può iniziare" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "" #~ "Il percorso di salvataggio che hai selezionato potrebbe essere stato " #~ "eliminato." #~ msgid "The recording has been saved in" #~ msgstr "La registrazione è stata salvata in formato" #~ msgid "Record computer sounds" #~ msgstr "Registra i suoni del computer" #~ msgid "Record from microphone" #~ msgstr "Registra dal microfono" #~ msgid "Show pointer" #~ msgstr "Mostra il puntatore" #~ msgid "Elegantly record your screen " #~ msgstr "Registra elegantemente il tuo schermo " #~ msgid "Simple screen recorder" #~ msgstr "Registratore di schermo semplice" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Kooha è un registratore di schermo semplice scritto in GTK. Ti permette " #~ "ti registrare il tuo schermo e anche l'audio proveniente dal tuo " #~ "microfono o dal desktop." SeaDve-Kooha-12ed227/po/ja.po000066400000000000000000000552611505224011700156260ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # tinaxd , 2021. # tinaxd , 2021. # 小山田純 , 2021. # Ryo Nakano , 2021, 2022, 2023, 2024. # Kaz Sibuya , 2021, 2022. # Kisaragi Hiu , 2022. # kj7kt , 2023. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-04-19 13:03+0000\n" "Last-Translator: Ryo Nakano \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.5-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "エレガントに画面を記録" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "" "Screencast;Recorder;Screen;Video;画面録画;画面キャプチャ;録画;キャプチャ;画" "面;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "直感的かつ分かりやすい方法で気を散らすことなく画面をキャプチャします。" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha はシンプルでミニマルなインターフェイスを備えたスクリーンレコーダーで" "す。複雑な設定をせず、ボタン一つで録画することができます。" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Kooha の主な機能は以下の通りです:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ マイクやデスクトップオーディオ、またはその両方を同時に記録" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 WebM、MP4、GIF、Matroshka 形式をサポート" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ モニター、あるいは画面の一部を選択して録画" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "🛠️ 保存先、カーソルの表示有無、フレームレート、遅延を設定可能" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 実験的なハードウェアアクセラレーションによるエンコーディング" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "範囲選択" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "キャンセル" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "完了" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "選択をリセット" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "一般" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "遅延 (秒)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "録画を開始するまでの時間" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "録画フォルダ" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "録画の保存先フォルダー" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "動画" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "フォーマット" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "フレームレート" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "メニューを開く" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "設定を表示" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "ショートカット一覧を表示" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "終了" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "録画中" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "録画の開始/終了" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "録画の一時停止/再開" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "録画をキャンセル" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "設定" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "デスクトップ音声の有効化/無効化" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "マイクの有効化/無効化" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "ポインターの表示/非表示" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "メインメニュー" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "モニタまたはウィンドウをキャプチャする" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "スクリーンの選択範囲をキャプチャする" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "デスクトップ音声を有効化" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "デスクトップ音声を無効化" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "マイクを有効化" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "マイクを無効化" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "ポインターを表示する" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "ポインターを隠す" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "録画を開始" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "録画" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "以前に選択した録画元の記録を消去" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "録画を停止" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "停止" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "録画を一時停止" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "録画開始まで…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "録画をキャンセル" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "書き込んでいます…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "設定(_P)" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "キーボードショートカット(_K)" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "Kooha について(_A)" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" "小山田 純\n" "Ryo Nakano\n" "Kaz Sibuya\n" "Kisaragi Hiu\n" "kj7kt" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "寄付 (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "翻訳" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "スクリーンキャストを保存しました" #: src/application.rs:144 msgid "Show in Files" msgstr "ファイル で表示" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "デフォルトの音声デバイスを検出できませんでした" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "PulseAudio がシステムにインストールされていることを確認してください。" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} 時間" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} 分" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} 秒" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "録画フォルダーを設定できませんでした" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "選択したフォーマットの場合、このフレームレートではパフォーマンス上の問題が発" "生する可能性があります。" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "このフォーマットは実験的でありサポートされていません。" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "なし" #: src/recording.rs:42 msgid "No active profile" msgstr "有効なプロファイルなし" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "録画の開始に失敗しました" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "ヘルプは {link} をご確認ください。" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "GStreamer プラグインがインストールされていない可能性があります。" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "保存場所が存在し、アクセス可能であることを確認してください。" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "録画中にエラーが発生しました" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "“{path}” を書き込み用に開けませんでした" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "動画の保存先のフォルダを選択" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "一時停止または再開に失敗しました" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "現在録画中です。直ちに終了すると、録画が再生不能になる可能性があります。終了" "前に録画を停止してください。" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "終了すると処理がキャンセルされ、録画が再生不能になる可能性があります。" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "アプリケーションを終了しますか?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "クリップボードにコピー" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "クリップボードにコピーしました" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "エラーの詳細を表示" #: src/window/mod.rs:289 msgid "Help" msgstr "ヘルプ" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "了解しました" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "設定を開きますか?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "前回選択したフォーマットが利用できません。設定を開いてフォーマットを選択し録" "画を継続してください。" #: src/window/mod.rs:308 msgid "Later" msgstr "後で" #: src/window/mod.rs:310 msgid "Open" msgstr "開く" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "録画中" #: src/window/mod.rs:509 msgid "Paused" msgstr "一時停止" #: src/window/mod.rs:546 msgid "Normal" msgstr "通常" #: src/window/mod.rs:547 msgid "Selection" msgstr "選択範囲" #~ msgid "Failed to start device monitor" #~ msgstr "デバイスモニタの開始に失敗しました" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "PulseAudioデーモンへの接続に失敗しました" #~ msgid "No microphone source found" #~ msgstr "マイクソースが見つかりません" #~ msgid "No desktop speaker source found" #~ msgstr "デスクトップスピーカーのソースが見つかりません" #~ msgid "Ok" #~ msgstr "OK" #~ msgid "This frame rate may cause performance issues." #~ msgstr "このフレームレートはパフォーマンスに問題を起こす可能性があります。" #~ msgid "approx." #~ msgstr "約" #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥 モニター、ウィンドウ、または画面の一部選択して録画" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 複数のソースから選択" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "ここをクリックして動画を確認できます。" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "ファイルを書き込み用に開けませんでした" #~ msgid "Failed to select folder" #~ msgstr "フォルダーを選択できませんでした" #~ msgid "Donate (Liberapay)" #~ msgstr "寄付 (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "寄付 (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "{} でヘルプを確認できます。" #~ msgid "Failed to open “{}” for writing" #~ msgstr "書き込みのために\"{}\"を開けませんでした" #~ msgid "_Cancel" #~ msgstr "キャンセル(_C)" #~ msgid "_Select" #~ msgstr "選択(_S)" #~ msgid "No folder selected" #~ msgstr "フォルダが選択されていません" #~ msgid "Please choose a folder and try again." #~ msgstr "フォルダを選択してやり直しください。" #~ msgid "Cannot access “{}”" #~ msgstr "“{}”にアクセスできません" #~ msgid "Please choose an accessible location and try again." #~ msgstr "アクセス可能な場所を選んで、もう一度お試しください。" #~ msgid "Enable Desktop Sounds" #~ msgstr "デスクトップでの音を有効" #~ msgid "Disable Desktop Sounds" #~ msgstr "デスクトップでの音を無効" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 手間をかけずに画面を記録。" #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ マイクの音声、コンピュータのサウンド、およびその両方を録音できます。" #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 WebM、MP4、GIF、MKV形式に対応。" #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 複数のソースを選択。" #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 ハードウェアアクセラレーションを使ったエンコードにも対応" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ モニターまたはウィンドウを選択して録画できます。" #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ 選択した範囲を録画できます。" #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ 録画開始前にタイマーをセットすることもできます。" #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ カーソルを非表示にしての録画もできます。" #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 保存先を選択できます。" #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ 便利なキーボードショートカットもあります。" #~ msgid "Toggle Computer Sounds" #~ msgstr "コンピューター内部音の録音を有効化/無効化" #~ msgid "_Delay" #~ msgstr "タイマー(_D)" #~ msgid "3 seconds" #~ msgstr "3秒" #~ msgid "5 seconds" #~ msgstr "5秒" #~ msgid "10 seconds" #~ msgstr "10秒" #~ msgid "_Video Format" #~ msgstr "動画の形式(_F)" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "保存先(_S)…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "GStreamer プラグインがインストールされていない可能性があります。インストー" #~ "ル済みなのに動かない場合は、Koohaのバグトラッカーで報告してください。" #~ msgid "Record Computer Sounds" #~ msgstr "コンピュータの音声を録音する" #~ msgid "Record From Microphone" #~ msgstr "マイクの音声を録音する" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "録画開始をキャンセル" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "スクリーンキャストを保存しました!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "録画は“{}”に保存されました" #~ msgid "Open File" #~ msgstr "ファイルを開く" #~ msgid "Screencast Portal Request Error" #~ msgstr "スクリーンキャストポータルの要求エラー" #~ msgid "Pipeline Build Error" #~ msgstr "パイプラインの組み立てエラー" #~ msgid "Recording Error" #~ msgstr "録画エラー" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "ランタイムがインストール済みか確認してください。動作しない場合も参照してください。" #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "保存先が存在していてアクセス可能か確認してください。存在していてアクセス可" #~ "能なのに動かない場合、何らかの不具合が発生しているのでKoohaのバグトラッカーで報告してくださ" #~ "い。" #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "保存先が存在するか確認してください。存在しているのに動かない場合、何らかの" #~ "不具合が発生しているのでKoohaのバグトラッカーで報告してください。" #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "GStreamer プラグインがインストールされていない可能性があります。インストー" #~ "ル済みなのにこのエラーが表示されている場合は、Koohaのバグトラッカーで報告してください。" #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "保存先の場所が存在するか確認してください。保存先が存在している場合、何らか" #~ "の不具合が発生しているのでKoohaのバグトラッカーで報告してください。" #~ msgid "Open menu" #~ msgstr "メニューを開く" #~ msgid "Show keyboard shortcuts" #~ msgstr "ショートカット一覧を表示する" #~ msgid "Delay" #~ msgstr "遅延" #~ msgid "Video Format" #~ msgstr "動画フォーマット" #~ msgid "Save to…" #~ msgstr "保存先…" #~ msgid "Keyboard Shortcuts" #~ msgstr "キーボードショートカット" #~ msgid "About Kooha" #~ msgstr "Kooha について" SeaDve-Kooha-12ed227/po/ko.po000066400000000000000000000364721505224011700156500ustar00rootroot00000000000000# Korean translation of Kooha in the GNOME circle. # Copyright (C) Kooha authors and many contributors. # This file is distributed under the same license as the kooha package. # Seong-ho Cho , 2021. # 정지우 , 2023. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-02-24 02:33+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.5-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "쿠하" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "화면을 우아하게 녹화해보세요" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "" "Screencast;스크린캐스트;생방송;방송;Recorder;레코더;Screen;화면;스크린;Video;" "비디오;동영상;영상;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "쿠하는 최소주의를 지향하는 인터페이스를 갖춘 간단한 화면 녹화기입니다. 번거로" "운 설정을 하지 않고 그냥 녹화 단추만 눌러 녹화할 수 있습니다." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "쿠하의 주요 기능은 다음과 같습니다:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "취소" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "일반적인" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "메뉴 열기" #: data/resources/ui/shortcuts.ui:20 #, fuzzy msgid "Show Preferences" msgstr "환경설정 보기" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "바로 가기 키 표시" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "끝내기" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "녹화중" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "녹화 전환" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "일시정지 전환" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "설정" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "마이크로폰 전환" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "포인터 상태 전환" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "메인 메뉴" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "모니터 또는 창 캡쳐" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "화면 선택 영역 캡쳐" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "포인터 표시" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "녹화" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "" #: data/resources/ui/window.ui:183 #, fuzzy msgid "Stop" msgstr "정지" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "녹화 중…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "지우는 중…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_환경설정" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_키보드 단축키" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "쿠하 정보(_A)" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "번역자-크레딧" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 #, fuzzy msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "번역" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "" #: src/application.rs:144 msgid "Show in Files" msgstr "" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "없음" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "녹화 폴더 선택" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "클립보드에 복사되었습니다" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 #, fuzzy msgid "Ok, Got It" msgstr "네, 알았어요" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "나중에" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "일시정지함" #: src/window/mod.rs:546 msgid "Normal" msgstr "일반" #: src/window/mod.rs:547 msgid "Selection" msgstr "선택" #, fuzzy #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Donate (Liberapay)" #~ msgstr "기부하기(Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "기부하기(PayPal)" #~ msgid "_Cancel" #~ msgstr "취소(_C)" #~ msgid "_Select" #~ msgstr "선택(_S)" #~ msgid "Cannot access “{}”" #~ msgstr "“{}”에 접근할 수 없습니다" #~ msgid "Please choose an accessible location and try again." #~ msgstr "열 수 있는 위치를 선택하고 다시 시도하십시오." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 어떤 번거로움 없이 화면을 찍습니다." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ 마이크로폰, 컴퓨터 소리 또는 둘 다 동시에 녹음합니다." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 WebM, MP4, GIF, MKV 형식을 지원합니다." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 여러 원본을 선택합니다." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 추가 하드웨어 가속 인코딩" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ 녹화할 모니터 또는 창을 선택합니다." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ 화면에서 녹화할 영역을 선택합니다." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ 녹화 시작 전 준비 지연 시간을 설정합니다." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ 마우스 포인터를 숨기거나 나타낼 수 있습니다." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 녹화 저장 위치를 선택합니다." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ 쓸만한 키보드 바로 가기 키를 활용합니다." #~ msgid "Toggle Computer Sounds" #~ msgstr "컴퓨터 소리 전환" #~ msgid "_Delay" #~ msgstr "지연(_D)" #~ msgid "5 seconds" #~ msgstr "5초" #~ msgid "10 seconds" #~ msgstr "10초" #~ msgid "_Video Format" #~ msgstr "동영상 형식(_V)" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "다음 위치에 저장(_S)…" #~ msgid "Record Computer Sounds" #~ msgstr "컴퓨터 소리 녹음" #~ msgid "Record From Microphone" #~ msgstr "마이크로폰 소리 녹음" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "지연 취소" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "스크린 캐스트를 녹화했습니다!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "녹화분을 “{}”에 저장했습니다" #~ msgid "Open File" #~ msgstr "파일 열기" #~ msgid "Screencast Portal Request Error" #~ msgstr "스크린캐스트 포털 요청 오류" #~ msgid "Pipeline Build Error" #~ msgstr "파이프라인 빌드 오류" #~ msgid "Recording Error" #~ msgstr "녹화 오류" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "런타임 의존 요소와 It Doesn't Work 페이지(영문)를 확인하십시오." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "지스트리머 플러그인을 설치하지 않은 것 같습니다. 이미 설치했다면 쿠하 문제 보고 페이지" #~ "에 보고하십시오." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "저장 위치가 있는지 확인하십시오. 저장 위치가 있다면, 뭔가 잘못되었을 수 있" #~ "으므로 쿠하 문제 보고 " #~ "페이지에 보고하십시오." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "어떤 방해요소 없이 간단하고 번거로움 없게 화면을 찍으세요." SeaDve-Kooha-12ed227/po/kooha.pot000066400000000000000000000246011505224011700165130ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 12:12+0800\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" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "" #: data/resources/ui/preferences_dialog.ui:10 msgid "General" msgstr "" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "" #: data/resources/ui/shortcuts.ui:10 msgctxt "shortcut window" msgid "General" msgstr "" #: data/resources/ui/shortcuts.ui:13 msgctxt "shortcut window" msgid "Open Menu" msgstr "" #: data/resources/ui/shortcuts.ui:19 msgctxt "shortcut window" msgid "Show Preferences" msgstr "" #: data/resources/ui/shortcuts.ui:25 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "" #: data/resources/ui/shortcuts.ui:31 msgctxt "shortcut window" msgid "Close Window" msgstr "" #: data/resources/ui/shortcuts.ui:37 msgctxt "shortcut window" msgid "Quit" msgstr "" #: data/resources/ui/shortcuts.ui:45 msgctxt "shortcut window" msgid "Recording" msgstr "" #: data/resources/ui/shortcuts.ui:48 msgctxt "shortcut window" msgid "Toggle Record" msgstr "" #: data/resources/ui/shortcuts.ui:55 msgctxt "shortcut window" msgid "Toggle Pause" msgstr "" #: data/resources/ui/shortcuts.ui:61 msgctxt "shortcut window" msgid "Cancel Record" msgstr "" #: data/resources/ui/shortcuts.ui:69 msgctxt "shortcut window" msgid "Settings" msgstr "" #: data/resources/ui/shortcuts.ui:72 msgctxt "shortcut window" msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:78 msgctxt "shortcut window" msgid "Toggle Microphone" msgstr "" #: data/resources/ui/shortcuts.ui:84 msgctxt "shortcut window" msgid "Toggle Pointer" msgstr "" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "" #: src/about.rs:50 msgid "Translate" msgstr "" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "" #: src/application.rs:144 msgid "Show in Files" msgstr "" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 #, rust-format msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 #, rust-format msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 #, rust-format msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:76 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:236 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:300 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:307 src/window/mod.rs:557 msgid "None" msgstr "" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:187 src/recording.rs:226 src/recording.rs:276 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:190 #, rust-format msgid "Check out {link} for help." msgstr "" #: src/recording.rs:227 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:277 src/recording.rs:506 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:497 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:503 #, rust-format msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:215 msgid "Quit" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:499 msgid "Recording" msgstr "" #: src/window/mod.rs:507 msgid "Paused" msgstr "" #: src/window/mod.rs:544 msgid "Normal" msgstr "" #: src/window/mod.rs:545 msgid "Selection" msgstr "" SeaDve-Kooha-12ed227/po/meson.build000066400000000000000000000002041505224011700170210ustar00rootroot00000000000000i18n.gettext(gettext_package, args: ['--keyword=gettext_f', '--keyword=ngettext_f:1,2',], preset: 'glib') SeaDve-Kooha-12ed227/po/nb_NO.po000066400000000000000000000505231505224011700162230ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Allan Nordhøy , 2021, 2022, 2023. # Syver Stensholt , 2021. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2023-04-13 07:50+0000\n" "Last-Translator: Allan Nordhøy \n" "Language-Team: Norwegian Bokmål \n" "Language: nb_NO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.17-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Ta opp skjermen din på elegant vis" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Skjermopptak;Opptaker;Skjerm;Video;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Ta opp skjermen din på en enkel og lettbeint måte uten forstyrrelser." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha er en enkel skjermopptaker med et minimalistisk grensesnitt. Du kan " "bare klikke opptaksknappen uten å måtte sette opp en masse innstillinger." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Kooha har blandt annet disse hovedfunksjonene:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Spill inn mikrofonlyd, skrivebordslyder, eller begge samtidig" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 #, fuzzy msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Støtte for WebM, MP4, GIT, og Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "🛠️ Sett opp lagringssted, pekersynlighet, rammetakt, og forsinkelse" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Eksperimentell maskinvarebasert koding" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Velg område" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Avbryt" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Ferdig" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Tilbakestill utvalg" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Generelt" #: data/resources/ui/preferences_dialog.ui:13 #, fuzzy msgid "Delay (Seconds)" msgstr "Forsinkelse (sekunder)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 #, fuzzy msgid "Recordings Folder" msgstr "Opptaksmappe" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Format" #: data/resources/ui/preferences_dialog.ui:58 #, fuzzy msgid "Frame Rate" msgstr "Rammetakt" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Åpne menyen" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Vis innstillinger" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Vis snarveier" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Avslutt" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Tar opp …" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Veksle opptak" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Veksle pausemodus" #: data/resources/ui/shortcuts.ui:56 #, fuzzy msgid "Cancel Record" msgstr "Avbryt opptak" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Innstillinger" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Skrivebordslyd av/på" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Veksle mikrofon" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Veksle peker" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Hovedmeny" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Ta opp en skjerm eller et vindu" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Ta opp et opptak eller en skjerm" #: data/resources/ui/window.ui:88 #, fuzzy msgid "Enable Desktop Audio" msgstr "Skru på skrivebordslyd" #: data/resources/ui/window.ui:89 #, fuzzy msgid "Disable Desktop Audio" msgstr "Skru av skrivebordslyd" #: data/resources/ui/window.ui:97 #, fuzzy msgid "Enable Microphone" msgstr "Skru på mikrofonlyd" #: data/resources/ui/window.ui:98 #, fuzzy msgid "Disable Microphone" msgstr "Skru av mikrofonlyd" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Vis peker" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Skjul peker" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Start opptak" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Ta opp" #: data/resources/ui/window.ui:131 #, fuzzy msgid "Forget Previously Selected Video Sources" msgstr "Glem tidligere valgte videokilder" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Stopp opptak" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Stopp" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Ta pause i opptak" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Tar opp om…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Avbryt opptak" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Renser …" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Innstillinger" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Tastatursnarveier" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Om Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Allan Nordhøy" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Oversett" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Skjermdeling innspilt" #: src/application.rs:144 #, fuzzy msgid "Show in Files" msgstr "Vis i filbehandler" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 #, fuzzy msgid "Make sure that you have PulseAudio installed in your system." msgstr "Forsikre deg om at du har PulseAudio installert på systemet ditt." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Dette formatet er eksperimentelt og ustøttet." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Ingen" #: src/recording.rs:42 msgid "No active profile" msgstr "Ingen aktiv profil" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 #, fuzzy msgid "Failed to start recording" msgstr "Klarte ikke å starte opptak" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Kanskje et GStreamer-programtillegg ikke er installert?" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Forsikre deg om at lagringsstedet finnes og kan brukes." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "En feil oppstod under opptak" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 #, fuzzy msgid "Select Recordings Folder" msgstr "Velg opptaksmappe" #: src/window/mod.rs:78 #, fuzzy msgid "Failed to toggle pause" msgstr "Klarte ikke å skru av/på pause" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Kopier til utklippstavlen" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Kopiert til utklippstavlen" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Vis detaljert feilmelding" #: src/window/mod.rs:289 msgid "Help" msgstr "Hjelp" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Åpne innstillingene?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Tidligere valgt format kan ha vært utilgjengelig. Åpne innstillingene og " "velg et format for å fortsette opptak." #: src/window/mod.rs:308 msgid "Later" msgstr "Senere" #: src/window/mod.rs:310 msgid "Open" msgstr "Åpne" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "På pause" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Utvalg" #, fuzzy #~ msgid "Failed to start device monitor" #~ msgstr "Klarte ikke å starte enhetsmonitor" #, fuzzy #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Klarte ikke å koble til PulseAudio-nisse" #, fuzzy #~ msgid "No microphone source found" #~ msgstr "Fant ingen mikrofonkilde" #~ msgid "No desktop speaker source found" #~ msgstr "Fant ingen skrivebordshøyttalerkilde" #, fuzzy #~ msgid "Ok" #~ msgstr "OK" #, fuzzy #~ msgid "This frame rate may cause performance issues." #~ msgstr "Denne rammetakten kan føre til ytelsesproblemer." #~ msgid "approx." #~ msgstr "ca." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ Velg en skjerm, et vindu, eller et skjermområde å ta opp" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Valg av flere kilder" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Klikk her for å vise videoen." #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #, fuzzy #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VA-API VP8" #, fuzzy #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VA-API VP9" #, fuzzy #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VA-API H264" #, fuzzy #~ msgid "Failed to open file for writing" #~ msgstr "Klarte ikke å åpne fil for skriving" #~ msgid "Donate (Liberapay)" #~ msgstr "Doner (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Doner (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Sjekk ut {} for hjelp." #, fuzzy #~ msgid "Failed to open “{}” for writing" #~ msgstr "Klarte ikke å åpne «{}» for skriving" #~ msgid "_Cancel" #~ msgstr "_Avbryt" #~ msgid "_Select" #~ msgstr "_Velg" #~ msgid "No folder selected" #~ msgstr "Ingen mappe valgt" #~ msgid "Please choose a folder and try again." #~ msgstr "Velg en mappe og prøv igjen." #~ msgid "Cannot access “{}”" #~ msgstr "Får ikke tilgang til «{}»" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Velg en tilgjengelig mappe og prøv igjen." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Ta opp skjermen uten stress." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Spill inn mikrofon, skrivebordslyd, eller begge på en gang." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Støtte for WebM-, MP4-, GIF-, og MKV-formater." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Flere lydkilder kan velges." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Valgfri maskinvareakselerert koding" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Velg en skjerm eller et vindu å ta opp." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Opprett et utvalg for å fange et gitt område på skjermen din." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Angi en forsinkelse for å forberede deg før opptaket." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Skjul eller vis musepekeren." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Velg et sted der opptakene skal lagres." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Ta i bruk nyttige tastatursnarveier." #~ msgid "Toggle Computer Sounds" #~ msgstr "Veksle datamaskinslyder" #~ msgid "_Delay" #~ msgstr "_Forsinkelse" #~ msgid "5 seconds" #~ msgstr "5 sekunder" #~ msgid "10 seconds" #~ msgstr "10 sekunder" #~ msgid "_Video Format" #~ msgstr "_Videoformat" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Lagre i …" #~ msgid "Record Computer Sounds" #~ msgstr "Ta opp datalyd" #~ msgid "Record From Microphone" #~ msgstr "Ta opp fra mikrofon" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Avbryt forsinkelse" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Opphavsrett © 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Skjermopptak innspilt." #~ msgid "The recording has been saved in “{}”" #~ msgstr "Opptaket har blitt lagret i «{}»" #~ msgid "Open File" #~ msgstr "Åpne fil" #~ msgid "Recording Error" #~ msgstr "Opptaksfeil" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Forsikre deg om at du sjekker kjøretidsavhengighetene og Det virker ikke-siden." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Et GStreamer-programtillegg er kanskje ikke installert. Hvis dette ikke " #~ "er tilfelle kan du rapportere det på Kooha sin feilsporer." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Forsikre deg om at lagringsstedet finnes. Hvis det ikke gjør det og noe " #~ "gikk galt kan du rapportere det på Kooha sin feilsporer." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "Ta opp skjermen din på en enkel og grei måte uten forstyrrelser." #, fuzzy #~ msgid "" #~ "Make sure to check for the runtime dependencies and \"It Doesn't Work\" " #~ "page in Kooha's readme page. ({})" #~ msgstr "" #~ "Husk å sjekke kjøretidsavhengigheter og «Det virker ikke»-siden i Koohas " #~ "LESMEG-side. ({})" #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's " #~ "issue page. ({})" #~ msgstr "" #~ "Et GStreamer-programtillegg kan ikke installeres. Hvis ikke kan du " #~ "rapportere feilen til Koohas feilsporer. ({})" #~ msgid "Screencast Portal Request Failed" #~ msgstr "Kunne ikke sende forespørsel til skjermdelingsportal" #~ msgid "Recording Failed" #~ msgstr "Opptak mislyktes" #, fuzzy #~ msgid "Pipeline Build Failed" #~ msgstr "Rørlagt bygg mislyktes" #~ msgid "Please choose an accessible location and retry." #~ msgstr "Velg en tilgjengelig plassering og prøv på nytt." #~ msgid "Select a Folder" #~ msgstr "Velg en mappe" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Velg et område på skjermen som skal tas opp." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Støtte for de frie formatene Matroska og WebM." #~ msgid "Open menu" #~ msgstr "Åpne meny" #~ msgid "Show keyboard shortcuts" #~ msgstr "Vis tastatursnarveier" #~ msgid "Toggle record" #~ msgstr "Start eller stopp opptak" #~ msgid "Cancel delay" #~ msgstr "Avbryt forsinkelse" #~ msgid "Toggle computer sounds" #~ msgstr "Slå av/på opptak av skrivebordslyd" #~ msgid "Toggle microphone" #~ msgstr "Slå av/på opptak av mikrofonen" #~ msgid "Toggle pointer" #~ msgstr "Slå av/på opptak av musepekeren" #~ msgid "Delay" #~ msgstr "Forsinkelse" #~ msgid "Video Format" #~ msgstr "Videoformat" #~ msgid "Save to…" #~ msgstr "Lagre til…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Tastatursnarveier" #~ msgid "About Kooha" #~ msgstr "Om Kooha" #~ msgid "Select" #~ msgstr "Velg" #~ msgid "Toggle capture mode" #~ msgstr "Endre opptaksmodus" #~ msgid "Full Screen" #~ msgstr "Fullskjerm" #~ msgid "Processing" #~ msgstr "Behandler" #~ msgid "Save location not set" #~ msgstr "Lagringsplass er ikke valgt" #~ msgid "Recording cannot start" #~ msgstr "Kunne ikke starte opptak" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "Lagringsplassen du valgte kan ha blitt slettet." #~ msgid "The recording has been saved in" #~ msgstr "Opptaket ble lagret i" #~ msgid "Record computer sounds" #~ msgstr "Ta opp skrivebordslyder" #~ msgid "Record from microphone" #~ msgstr "Ta opp fra mikrofonen" #~ msgid "Show pointer" #~ msgstr "Vis musepeker" #~ msgid "Elegantly record your screen " #~ msgstr "Ta opp skjermen din på elegant vis " SeaDve-Kooha-12ed227/po/ne.po000066400000000000000000000400251505224011700156260ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Diggaj Upadhyay , 2022. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2022-05-17 03:17+0000\n" "Last-Translator: Diggaj Upadhyay \n" "Language-Team: Nepali \n" "Language: ne\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.13-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 #, fuzzy msgid "Kooha" msgstr "कोहा" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "सुन्दर रूपमा आफ्नो स्क्रिन रेकर्ड गर्नुहोस्" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "स्क्रिनकास्ट; रेकर्डर; स्क्रिन; भिडियो;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 #, fuzzy msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "आफ्नो स्क्रिनलाई सहज र सीधा तरिकाले विचलित नगरी खिच्नुहोस्।" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "कोहा को मुख्य विशेषताहरु निम्न समावेश छन्:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "सामान्य" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "मेनु खोल्नुहोस्" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "सर्टकटहरू देखाउनुहोस्" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "बाहिर निस्कनुहोस्" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "रेकर्डिङ" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "रेकर्ड टगल गर्नुहोस्" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "पज टगल गर्नुहोस्" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "सेटिङहरू" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "माइक्रोफोन टगल गर्नुहोस्" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "सूचक टगल गर्नुहोस्" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "मुख्य मेनु" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "मनिटर वा विन्डो क्याप्चर गर्नुहोस्" #: data/resources/ui/window.ui:68 #, fuzzy msgid "Capture a Selection of Screen" msgstr "स्क्रिनको चयन क्याप्चर गर्नुहोस्" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "सूचक देखाउनुहोस्" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "रेकर्ड" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "रोक्नुहोस्" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "रेकर्डिङ प्रक्रियामा…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "फ्लस गर्दै…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_कीबोर्ड सर्टकटहरू" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_कोहा को बारेमा" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "अनुवादक-क्रेडिट" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "" #: src/application.rs:144 msgid "Show in Files" msgstr "" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "केहि छैन" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 #, fuzzy msgid "Select Recordings Folder" msgstr "रेकर्डिङ फोल्डर चयन गर्नुहोस्" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "रोकियो" #: src/window/mod.rs:546 msgid "Normal" msgstr "सामान्य" #: src/window/mod.rs:547 msgid "Selection" msgstr "चयन" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 कुनै झन्झट बिना आफ्नो स्क्रिन क्याप्चर गर्नुहोस्।" #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ आफ्नो माइक्रोफोन, कम्प्युटर ध्वनि, वा दुबै एकै समयमा रेकर्ड गर्नुहोस्।" #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 WebM, MP4, GIF, र MKV ढाँचाहरूको लागि समर्थन।" #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 बहु स्रोत चयन।" #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 वैकल्पिक हार्डवेयर एक्सेलेरेटेड एन्कोडिङ" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ रेकर्ड गर्न मनिटर वा विन्डो चयन गर्नुहोस्।" #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ आफ्नो स्क्रिनबाट निश्चित क्षेत्र क्याप्चर गर्न चयन सिर्जना गर्नुहोस्।" #, fuzzy #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ तपाईंले रेकर्डिङ सुरु गर्नु अघि तयारी गर्न ढिलाइ सेट गर्नुहोस्।" #, fuzzy #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️माउस सूचक लुकाउनुहोस् वा देखाउनुहोस्।" #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 आफ्नो रेकर्डिङको लागि बचत स्थान छान्नुहोस्।" #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ उपयोगी किबोर्ड सर्टकटहरू प्रयोग गर्नुहोस्।" #~ msgid "Toggle Computer Sounds" #~ msgstr "कम्प्युटर ध्वनि टगल गर्नुहोस्" #~ msgid "_Delay" #~ msgstr "_ढिला" #~ msgid "5 seconds" #~ msgstr "५ सेकेन्ड" #~ msgid "10 seconds" #~ msgstr "१० सेकेन्ड" #, fuzzy #~ msgid "_Video Format" #~ msgstr "_भिडियो ढाँचा" #~ msgid "MKV" #~ msgstr "MKV" #, fuzzy #~ msgid "_Save to…" #~ msgstr "_कहाँ बचत गर्न चयन गर्नुहोस्…" #~ msgid "Record Computer Sounds" #~ msgstr "कम्प्युटर ध्वनि रेकर्ड गर्नुहोस्" #~ msgid "Record From Microphone" #~ msgstr "माइक्रोफोनबाट रेकर्ड गर्नुहोस्" #~ msgid "Dave Patrick" #~ msgstr "डेभ प्याट्रिक" #, fuzzy #~ msgid "Cancel Delay" #~ msgstr "अन्तराल रद्द गर्नुहोस्" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "प्रतिलिपि अधिकार २०२१ डेभ प्याट्रिक" #~ msgid "Screencast Recorded!" #~ msgstr "स्क्रिनकास्ट रेकर्ड गरियो!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "रेकर्डिङ \"{}\" मा सुरक्षित गरिएको छ" #~ msgid "Open File" #~ msgstr "फाइल खोल्नुहोस्" #~ msgid "Screencast Portal Request Error" #~ msgstr "स्क्रिनकास्ट पोर्टल अनुरोध त्रुटि" #~ msgid "Pipeline Build Error" #~ msgstr "पाइपलाइन निर्माण त्रुटि" #~ msgid "Recording Error" #~ msgstr "रेकर्डिङ त्रुटि" #, fuzzy #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "रनटाइम निर्भरता र को लागि जाँच गर्न निश्चित गर्नुहोस्" SeaDve-Kooha-12ed227/po/nl.po000066400000000000000000000612401505224011700156370ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Heimen Stoffels , 2021. # Heimen Stoffels , 2021, 2022. # Philip Goto , 2023, 2024, 2025. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2025-02-05 19:50+0000\n" "Last-Translator: Philip Goto \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: Weblate 5.10-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Maak elegante schermopnames" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Recorder;Screen;Video;Opname;Scherm;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "Maak op eenvoudige wijze opnames van je scherm, zonder enige vorm van " "afleiding." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha is een eenvoudige schermopname-app met een minimalistische vormgeving. " "Klik gewoon op de opnameknop zonder allerlei instellingen te moeten " "doorlopen." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Belangrijkste kenmerken van Kooha:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Neem op van je microfoon, computergeluiden of beide tegelijk" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Ondersteuning voor webm-, mp4-, gif- en mkv-formaten" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Selecteer een monitor of een deel van het scherm om op te nemen" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Stel de opslaglocatie, cursorzichtbaarheid, framesnelheid en vertraging in" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Hardware-versnelde encodering (experimenteel)" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Opname­opties en knop om de opname te starten" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Duur van de lopende opname en knop om de opname te stoppen" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "Aftelling om de opname te starten en knop om de opname te annuleren" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Selecteer een gebied" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Annuleren" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Afronden" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Selectie herstellen" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Algemeen" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Wachttijd (in seconden)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Tijds­interval voordat de opname begint" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Opnamemap" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Bestemmings­map voor de opnamen" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Formaat" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Framesnelheid" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Menu openen" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Voorkeuren openen" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Sneltoetsen tonen" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Afsluiten" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Opname" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Opname aan/uit" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Onderbreken/Hervatten" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Opname stoppen" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Instellingen" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Computergeluid aan/uit" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Microfoon aan/uit" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Aanwijzer tonen/verbergen" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Hoofdmenu" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Beeldscherm of venster vastleggen" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Schermselectie vastleggen" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Computergeluid inschakelen" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Computergeluid uitschakelen" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Microfoon inschakelen" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Microfoon uitschakelen" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Cursor tonen" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Cursor verbergen" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Opname starten" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Opnemen" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Eerder gekozen videobronnen vergeten" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Opname stoppen" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Stoppen" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Opname onderbreken" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "De opname wordt gestart over…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Opname stoppen" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Bezig met opruimen…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Voorkeuren" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Snel­toetsen" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "Over Kooh_a" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Philip Goto https://flipflop97.github.io/" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Doneren (trakteer me op een kopje koffie)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Meehelpen vertalen" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "De opname is afgerond" #: src/application.rs:144 msgid "Show in Files" msgstr "Tonen in bestanden" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Kan het standaard­audioapparaat niet vinden" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Zorg er voor dat PulseAudio geïnstalleerd is." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} uur" msgstr[1] "{time} uur" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minuut" msgstr[1] "{time} minuten" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} seconde" msgstr[1] "{time} seconden" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Opname­map instellen mislukt" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Deze beeld­snelheid kan prestatie­problemen veroorzaken bij het geselecteerde " "formaat." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" "Let op: dit formaat is experimenteel en wordt niet officieel ondersteund." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Geen" #: src/recording.rs:42 msgid "No active profile" msgstr "Er is geen actief profiel" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "De opname kan niet worden gestart" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Bekijk {link} voor hulp." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Er ontbreekt mogelijk een GStreamer-plug-in." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Zorg er voor dat de opslaglocatie bestaat en toegankelijk is." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Er is een fout opgetreden tijdens de opname" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Kan niet schrijven naar ‘{path}’" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Kies de opnamemap" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Het onderbreken/hervatten is mislukt" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Er is momenteel een opname bezig. Als u onmiddellijk stopt, kan de opname " "mogelijk niet meer worden afgespeeld. Stop de opname voordat u stopt." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Als u stopt, wordt de verwerking geannuleerd en kan de opname mogelijk niet " "meer worden afgespeeld." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "App afsluiten?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Kopiëren naar klembord" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Gekopieerd naar klembord" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Uitgebreide foutmelding tonen" #: src/window/mod.rs:289 msgid "Help" msgstr "Hulp" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Oké, begrepen" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Voorkeuren openen?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Het eerder gekozen formaat is mogelijk niet beschikbaar. Open de voorkeuren " "en kies een ander formaat." #: src/window/mod.rs:308 msgid "Later" msgstr "Later" #: src/window/mod.rs:310 msgid "Open" msgstr "Openen" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Er is een opname bezig" #: src/window/mod.rs:509 msgid "Paused" msgstr "Onderbroken" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normaal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Selectie" #~ msgid "Failed to start device monitor" #~ msgstr "De apparaatzoekdienst kan niet worden gestart" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "" #~ "Er kan geen verbinding worden gemaakt met de PulseAudio-achtergronddienst" #~ msgid "No microphone source found" #~ msgstr "Er is geen microfoon aangetroffen" #~ msgid "No desktop speaker source found" #~ msgstr "Er is geen luidspreker aangetroffen" #~ msgid "Ok" #~ msgstr "OK" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Let op: deze snelheid kan voor prestatieproblemen zorgen." #~ msgid "approx." #~ msgstr "ong." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ Kies het beeldscherm, venster of schermgebied dat je wilt vastleggen" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Keuze uit meerdere bronnen" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Klik hier om de video te bekijken." #~ msgid "Failed to select saving location" #~ msgstr "Opslag­locatie selecteren mislukt" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Het bestand kan niet worden weggeschreven" #~ msgid "Failed to select folder" #~ msgstr "Map selecteren mislukt" #~ msgid "Donate (Liberapay)" #~ msgstr "Doneren (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Doneren (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Ga naar {} om de documentatie te bekijken." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Er kan niet worden weggeschreven naar “{}”" #~ msgid "_Cancel" #~ msgstr "_Annuleren" #~ msgid "_Select" #~ msgstr "_Selecteren" #~ msgid "No folder selected" #~ msgstr "Geen map gekozen" #~ msgid "Please choose a folder and try again." #~ msgstr "Kies een map en probeer het opnieuw." #~ msgid "Cannot access “{}”" #~ msgstr "Geen toegang tot ‘{}’" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Kies een toegankelijke locatie en probeer het opnieuw." #~ msgid "Enable Desktop Sounds" #~ msgstr "Computergeluiden afspelen" #~ msgid "Disable Desktop Sounds" #~ msgstr "Geen computergeluiden afspelen" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Maak eenvoudig opnames van je scherm." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Neem op van je microfoon, computergeluiden of beide tegelijk." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Ondersteuning voor webm-, mp4-, gif- en mkv-formaten." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Keuze uit meerdere bronnen." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Hardware-versnelde encodering (optioneel)" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Kies het beeldscherm dat je wilt vastleggen." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Selecteer een gebied op je scherm dat je wilt vastleggen." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Stel een wachttijd in zodat de opname iets later start." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Toon of verberg de cursor." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Kies zelf waar de opname moet worden opgeslagen." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Maak gebruik van handige sneltoetsen." #~ msgid "Toggle Computer Sounds" #~ msgstr "Computergeluiden aan/uit" #~ msgid "_Delay" #~ msgstr "Wachttij_d" #~ msgid "3 seconds" #~ msgstr "3 seconden" #~ msgid "5 seconds" #~ msgstr "5 seconden" #~ msgid "10 seconds" #~ msgstr "10 seconden" #~ msgid "_Video Format" #~ msgstr "_Videoformaat" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "Op_slaan in…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Er ontbreekt mogelijk een GStreamer-plug-in. Als deze geïnstalleerd is en " #~ "Kooha werkt niet goed, meld dit probleem dan op Kooha's issuepagina." #~ msgid "Record Computer Sounds" #~ msgstr "Computergeluiden opnemen" #~ msgid "Record From Microphone" #~ msgstr "Opnemen van microfoon" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Wachten afbreken" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021, Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "De screencast is opgenomen!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "De opname is opgeslagen in ‘{}’" #~ msgid "Open File" #~ msgstr "Bestand openen" #~ msgid "Screencast Portal Request Error" #~ msgstr "Foutmelding bij verzoek aan screencastportaal" #~ msgid "Pipeline Build Error" #~ msgstr "Pijplijn-bouwfout" #~ msgid "Recording Error" #~ msgstr "Opnamefout" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Controleer de afhankelijkheden en de It Doesn't Work-pagina." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Controleer of de opslaglocatie bestaat. Als dat zo is en de locatie ook " #~ "toegankelijk is, meld dit probleem dan op Kooha's issuepagina." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Zorg er voor dat de opslaglocatie bestaat. Als deze bestaat en Kooha " #~ "werkt niet goed, meld dit probleem dan op Kooha's issuepagina." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Mogelijk ontbreekt er een GStreamer-plug-in. Als dat niet zo is, meld dit " #~ "voorval dan op Kooha's " #~ "issuepagina." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Zorg er voor dat de opslaglocatie bestaat. Als dat zo is en het lukt nóg " #~ "niet, meld dit voorval dan op Kooha's issuepagina." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "Maak een opname van je scherm op een makkelijke, duidelijke manier." #~ msgid "" #~ "Make sure to check for the runtime dependencies and \"It Doesn't Work\" " #~ "page in Kooha's readme page. ({})" #~ msgstr "" #~ "Controleer de software-afhankelijkheden en de pagina ‘Kooha werkt niet’ " #~ "in het leesmijbestand. ({})" #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's " #~ "issue page. ({})" #~ msgstr "" #~ "Er ontbreekt mogelijk een GStreamer-plug-in. Als dat niet het geval in, " #~ "meld dit probleem dan op Kooha's issuepagina. ({})" #~ msgid "Screencast Portal Request Failed" #~ msgstr "Het screencastverzoek is mislukt" #~ msgid "Recording Failed" #~ msgstr "De opname is mislukt" #~ msgid "Pipeline Build Failed" #~ msgstr "Het bouwen van de pijplijn is mislukt" #~ msgid "Sorry! An error has occurred." #~ msgstr "Er is een fout opgetreden." #~ msgid "Please choose an accessible location and retry." #~ msgstr "Kies een toegankelijke locatie en probeer het opnieuw." #~ msgid "The recording has been saved in {}" #~ msgstr "De opname is opgeslagen in ‘{}’" #~ msgid "Select a Folder" #~ msgstr "Kies een map" #~ msgid "Inaccessible location '{}'" #~ msgstr "Ontoegankelijke locatie: ‘{}’" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Selecteer een op te nemen gebied." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Ondersteuning voor de vrije Matroska- en WebM-formaten." #~ msgid "Open menu" #~ msgstr "Menu openen" #~ msgid "Show keyboard shortcuts" #~ msgstr "Sneltoetsen tonen" #~ msgid "Toggle record" #~ msgstr "Opname aan/uit" #~ msgid "Toggle record pause" #~ msgstr "Onderbreken aan/uit" #~ msgid "Cancel delay" #~ msgstr "Wachten afbreken" #~ msgid "Toggle computer sounds" #~ msgstr "Computergeluiden aan/uit" #~ msgid "Toggle microphone" #~ msgstr "Microfoon aan/uit" #~ msgid "Toggle pointer" #~ msgstr "Cursor aan/uit" #~ msgid "Delay" #~ msgstr "Wachttijd" #~ msgid "Video Format" #~ msgstr "Videoformaat" #~ msgid "Save to…" #~ msgstr "Opslaan in…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Sneltoetsen" #~ msgid "About Kooha" #~ msgstr "Over Kooha" #~ msgid "Sorry! An error has occured." #~ msgstr "Er is een fout opgetreden." #~ msgid "Videos" #~ msgstr "Video's" #~ msgid "Failed to create session." #~ msgstr "De sessie kan niet worden aangemaakt." #~ msgid "Failed to select sources." #~ msgstr "De bronnen kunnen niet worden geselecteerd." #~ msgid "Select" #~ msgstr "Kiezen" #~ msgid "Inaccessible location “{directory}”" #~ msgstr "Ontoegankelijke locatie: {directory}" #~ msgid "The recording has been saved in {saving_location}" #~ msgstr "De opname is opgeslagen in {saving_location}" #~ msgid "Inaccessible location '{directory}'" #~ msgstr "Ontoegankelijke locatie: {directory}" #~ msgid "Toggle capture mode" #~ msgstr "Opnamemodus wijzigen" #~ msgid "Full Screen" #~ msgstr "Beeldvullende modus" #~ msgid "Processing" #~ msgstr "Bezig met verwerken…" #~ msgid "Save location not set" #~ msgstr "Geen opslaglocatie ingesteld" #~ msgid "Recording cannot start" #~ msgstr "De opname kan niet worden gestart" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "De gekozen opslaglocatie is mogelijk verwijderd." #~ msgid "The recording has been saved in" #~ msgstr "De opname is opgeslagen in" #~ msgid "Record computer sounds" #~ msgstr "Computergeluiden opnemen" #~ msgid "Record from microphone" #~ msgstr "Microfoonopname" #~ msgid "Show pointer" #~ msgstr "Cursor tonen" #~ msgid "Elegantly record your screen " #~ msgstr "Elegenante schermopnamentoepassing " #~ msgid "🎥 Capture your screen without any hustle." #~ msgstr "🎥 Maak zonder gedoe een opname van je scherm." #~ msgid "Simple screen recorder" #~ msgstr "Eenvoudige schermopnametoepassing" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Kooha is een eenvoudige schermopnametoepassing, geschreven in GTK. " #~ "Hiermee kun je je scherm opnemen, evenals audio van je microfoon of " #~ "werkomgeving." SeaDve-Kooha-12ed227/po/oc.po000066400000000000000000000416761505224011700156420ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Quentin PAGÈS , 2021, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-03-23 20:17+0000\n" "Last-Translator: Quentin PAGÈS \n" "Language-Team: Occitan \n" "Language: oc\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.5-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Enregistrar elegantament vòstre ecran" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "videografia;ecran;captura;enregistrar;vidèo;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "Capturatz l’ecran d’un biais intuitiu e dirèct sens cap de distraccion." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha es un enregistrador d’ecran simple amb una interfàcia minimalista. " "Podètz simplament clicar lo boton d’enregistrament sens aver de configurar " "un fum de paramètres." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Las caracteristicas principalas de Kooha son las seguentas :" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Enregistratz lo microfòn, l’àudio del burèu o los dos a l’encòp" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Compatibilitat amb los formats WebM, MP4, GIF, eMatroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Seleccionatz un ecran o una part de l'ecran d'enregistrar" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Configuratz l’emplaçament d’enregistrament, la visibilitat del puntador, " "la frequéncia d’imatge e lo relambi" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Encodatge (experimental) amb acceleracion materiala" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Seleccionar la zòna" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Anullar" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Acabat" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Desfar la seleccion" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "General" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Relambi (en segondas)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Interval de temps abans de començar l'enregistrament" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Dossièr d'enregistrament" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Dossièr de destinacion dels enregistraments" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Vidèo" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Format" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Frequéncia d'imatge" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Dobrir lo menú" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Afichar las preferéncias" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Afichar los acorchis" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Sortir" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Enregistrament" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Alternar enregistrament" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Alternar pausa" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Anullar l'enregistrament" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Paramètres" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Alternar l’àudio del burèu" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Alternar microfòn" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Alternar puntaire" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Menú principal" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Capturar un monitor o una fenèstra" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Capturar una seleccion de l’ecran" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Activar l’àudio del burèu" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Desactivar l’àudio del burèu" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Activar lo microfòn" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Desactivar lo microfòn" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Mostrar lo puntaire" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Rescondre lo puntador" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Aviar l'enregistrament" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Enregistrar" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Oblidar las fonts d’entradas de las vidèos precedentas" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Arrestar l'enregistrament" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Arrestar" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Metre en pausa l'enregistrament" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Enregistrament d’aquí…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Anullar l'enregistrament" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Purga…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Preferéncias" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Acorchis de clavièr" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_A prepaus de Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Quentin PAGÈS" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Far un don (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Traduire" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Captura vidèo salvada" #: src/application.rs:144 msgid "Show in Files" msgstr "Mostrar dins los fichièrs" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Periferic àudio per defaut introbable" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Asseguratz-vos que PulseAudio es installat sul sistèma." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} ora" msgstr[1] "{time} oras" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minuta" msgstr[1] "{time} minutas" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} segonda" msgstr[1] "{time} segondas" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" "Fracàs de la definicion del dossièr de destinacion dels enregistraments" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Aquesta frequéncia d'imatges pòt menar a de problèmas de performança amb lo " "format seleccionat." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Aqueste format es experimental e pas pres en carga." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Cap" #: src/recording.rs:42 msgid "No active profile" msgstr "Cap de perfil pas activat" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Fracàs de l’aviada de l’enregistrament" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Consultatz {link} per obténer d’ajuda." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Un empeuton GStreamer es benlèu pas installat." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Asseguratz-vos que l’emplaçament existís e es accessible." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Una error se’s producha pendent l’enregistrament" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Fracàs de la dubertura de « {path} » per escritura" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Seleccionar dossièr pels enregistraments" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Fracàs de la bascula en pausa" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Un enregistrament es en cors. Quitar ara poiriá far venir l'enregistrament " "illegible. Arrestatz l'enregistrement abans de quitar." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Quitar anullarà lo processús e poiriá far venir l'enregistrament illegible." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Volètz quitar l’aplicacion ?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Copiar al quichapapièrs" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Copiat al quichapapièrs" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Mostrar las errors detalhadas" #: src/window/mod.rs:289 msgid "Help" msgstr "Ajuda" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "D'acòrdi" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Dobrir las preferéncias ?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Lo format precedentament seleccionat es benlèu indisponible. Dorbissètz las " "preferéncias e seleccionatz un format per contunhar d’enregistrar." #: src/window/mod.rs:308 msgid "Later" msgstr "Mai tard" #: src/window/mod.rs:310 msgid "Open" msgstr "Dobrir" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "I a un enregistrament en cors" #: src/window/mod.rs:509 msgid "Paused" msgstr "En pausa" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Seleccion" #~ msgid "Failed to start device monitor" #~ msgstr "Fracàs de l’aviada del monitor de periferic" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Fracàs de la connexion al demòni PulseAudio" #~ msgid "No microphone source found" #~ msgstr "Cap de font pel microfòn pas trobada" #~ msgid "No desktop speaker source found" #~ msgstr "Cap de font pel nautparlaire del burèu pas trobada" #~ msgid "Ok" #~ msgstr "D'acòrdi" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Aquesta velocitat d’imatge pòt causar problèmas de performança." #~ msgid "approx." #~ msgstr "aprox." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ Seleccionatz un ecran, una fenèstra o una part de l'ecran d’enregistrar" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Seleccion multipla d’entradas" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Clicatz aicí per veire la vidèo." #~ msgid "Failed to select saving location" #~ msgstr "Fracàs de la seleccion de l’emplaçament d’enregistrament" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Dubertura impossibla del fichièr per escriure" #~ msgid "_Cancel" #~ msgstr "_Anullar" #~ msgid "_Select" #~ msgstr "_Seleccionar" #~ msgid "Cannot access “{}”" #~ msgstr "Accès impossibla a « {} »" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Causissètz un emplaçament accessible e tornatz ensajar." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Capturatz l’ecran sens cap de dificultat." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Enregistratz lo microfòn, los sons de l’ordenador, o los dos al meteis " #~ "temps." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Compatibilitat amb los formats WebM, MP4, GIF, e MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Seleccion de multipla sorgas." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Encodatge materiala accelerat en opcion" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Seleccionar un monitor o una fenèstra d’enregistrar." #~ msgid "Toggle Computer Sounds" #~ msgstr "Alternar sons de l’ordenador" #~ msgid "_Delay" #~ msgstr "_Retard" #~ msgid "5 seconds" #~ msgstr "5 segondas" #~ msgid "10 seconds" #~ msgstr "10 segondas" #~ msgid "_Video Format" #~ msgstr "_Format vidèo" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Salvar en…" #~ msgid "Record Computer Sounds" #~ msgstr "Enregistrar los sons de l’ordenador" #~ msgid "Record From Microphone" #~ msgstr "Enregistrar lo son del microfòn" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Anullar lo retard" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Captura d’ecran enregistrada !" #~ msgid "The recording has been saved in “{}”" #~ msgstr "L’enregistrament es estat gardat dins « {} »" #~ msgid "Open File" #~ msgstr "Dobrir un fichièr" #~ msgid "Screencast Portal Request Error" #~ msgstr "Error de requèsta al portal de transmission de l’ecran" #~ msgid "Recording Error" #~ msgstr "Error d’enregistrament" SeaDve-Kooha-12ed227/po/pl.po000066400000000000000000000502061505224011700156410ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Radek Raczkowski , 2021. # Adam Hulewicz , 2021. # Radosław Korotkiewicz , 2022. # Carlod , 2022. # gnu-ewm , 2022. # David , 2023. # Eryk Michalak , 2023, 2024. # Kuba , 2024. # Stan Ulbrych , 2025. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2025-04-29 01:06+0000\n" "Last-Translator: Stan Ulbrych \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.12-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Elegancko nagrywaj swój ekran" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Nagrywanie ekranu;Nagrywarka;Ekran;Wideo;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "Przechwytuj swój ekran w intuicyjny i prosty sposób bez rozpraszania uwagi." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha jest prostą nagrywarką ekranu z minimalistycznym interfejsem. Możesz " "po prostu wcisnąć przycisk nagrywania bez konieczności konfigurowania " "mnóstwa ustawień." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Główne funkcjonalności Kooha to:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Nagrywaj dźwięk z mikrofonu, urządzenia, albo obu na raz" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Obsługuje WebM, MP4, GIF i formaty Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Zaznacz monitor lub porcję ekranu do nagrania" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Edytowalne lokalizacje zapisu, widoczności kursora, częstotliwości, oraz " "opóźnienia" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Eksperymentalne kodowanie z akceleracją sprzętową" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Opcje nagrywania i przycisk do rozpoczęcia nagrywania" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Wybierz powierzchnię" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Anuluj" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Gotowe" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Anuluj Wybór" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Ogólne" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Opóźnienie (w sekundach)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Czas przed rozpoczęciem nagrywania" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Folder Nagrań" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Katalog docelowy z nagraniami" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Nagranie" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Format" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Częstotliwość Wyświetlania Klatek" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Otwórz menu" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Pokaż Preferencje" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Pokaż skróty klawiszowe" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Zakończ" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Nagrywanie" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Przełącz nagrywanie" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Przełącz pauzę" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Anuluj nagrywanie" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Ustawienia" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Przełącz Wyjście Audio" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Przełącz mikrofon" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Przełącz wskaźnik" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Menu główne" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Przechwytuj ekran lub okno" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Przechwytuj zaznaczenie ekranu" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Włącz Dźwięk Urządzenia" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Wyłącz Dźwięk Urządzenia" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Włącz mikrofon" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Wyłącz mikrofon" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Pokaż wskaźnik" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Ukryj myszkę" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Rozpocznij nagrywanie" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Nagrywaj" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Zapomnij o wcześniej wybranych źródłach wideo" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Zatrzymaj nagrywanie" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Zatrzymaj" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Wstrzymaj nagrywanie" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Nagrywanie za…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Anuluj Nagrywanie" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Czyszczenie…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Preferencje" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Skróty klawiszowe" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_O Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" "Radek Raczkowski, Adam Hulewicz, Radosław Korotkiewicz, David Troianovskyi" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Wspomóż (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Pomóż w tłumaczeniu" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Nagranie ekranu zostało nagrane pomyślnie" #: src/application.rs:144 msgid "Show in Files" msgstr "Pokaż w plikach" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Błąd w znalezieniu domyślnego urządzenia audio" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Upewnij się, że w systemie jest zainstalowane PulseAudio." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} godzina" msgstr[1] "{time} godziny" msgstr[2] "{time} godzin" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minuta" msgstr[1] "{time} minuty" msgstr[2] "{time} minut" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} sekunda" msgstr[1] "{time} sekundy" msgstr[2] "{time} sekund" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Nie udało się ustawić katalogu z nagraniami" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Liczba klatek na sekundę może powodować problemy wydajności w tym formacie." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Ten format jest eksperymentalny i nie jest wspierany." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Brak" #: src/recording.rs:42 msgid "No active profile" msgstr "Brak aktywnego profilu" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Nie udało się rozpocząć nagrywania" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Sprawdź {link} po pomoc." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Plugin GStreamer może nie być zainstalowany." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Upewnij się, że lokalizacja zapisu istnieje i jest dostępna." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Wystąpił błąd podczas nagrywania" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Błąd w otwarciu \"{path}\" do zapisu" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Wybierz Katalog Nagrań" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Nie udało się włączyć pauzy" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Nagrywanie jest aktualnie w toku. Nagłe wyjście może zrobić nagranie " "nieodtwarzalnym. Proszę zatrzymaj nagranie przed wyjściem." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "Wyjście zatrzyma przetwarzanie i zrobi nagranie nieodtwarzalnym." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Zamknąć aplikację?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Skopiuj do schowka" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Skopiowano do schowka" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Pokaż szczegóły błędu" #: src/window/mod.rs:289 msgid "Help" msgstr "Pomoc" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Ok, zrozumiano" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Otworzyć Preferencje?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Poprzednio wybrany format może być niedostępny. Otwórz ustawienia " "preferencji i wybierz format przed kontynuowaniem." #: src/window/mod.rs:308 msgid "Later" msgstr "Później" #: src/window/mod.rs:310 msgid "Open" msgstr "Otwarto" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Nagrywanie jest w toku" #: src/window/mod.rs:509 msgid "Paused" msgstr "Pauza" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normalny" #: src/window/mod.rs:547 msgid "Selection" msgstr "Zaznaczenie" #~ msgid "Failed to start device monitor" #~ msgstr "Nie udało się uruchomić monitorowania urządzenia" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Nie udało się połączyć z usługą PulseAudio" #~ msgid "No microphone source found" #~ msgstr "Nie znaleziono źródła mikrofonu" #~ msgid "No desktop speaker source found" #~ msgstr "Nie znaleziono żadnych źródeł wyjścia audio" #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "This frame rate may cause performance issues." #~ msgstr "" #~ "Wybór tej częstotliwości nagrywania może powodować problemy z wydajnością." #~ msgid "approx." #~ msgstr "przewidywane." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ Wybierz monitor, okno, albo część ekranu, który będzie nagrywany" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Możliwość wyboru wielu źródeł" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Kliknij tutaj, aby obejrzeć film." #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Nie udało się otworzyć pliku do zapisania" #~ msgid "Donate (Liberapay)" #~ msgstr "Przekaż darowiznę (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Przekaż darowiznę (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Sprawdź {}, aby uzyskać pomoc." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Nie udało się otworzyć \"{}\" do zapisu" #~ msgid "_Cancel" #~ msgstr "_Anuluj" #~ msgid "_Select" #~ msgstr "_Wybierz" #~ msgid "No folder selected" #~ msgstr "Nie wybrano żadnego folderu" #~ msgid "Please choose a folder and try again." #~ msgstr "Proszę wybrać folder i spróbować ponownie." #~ msgid "Cannot access “{}”" #~ msgstr "Brak dostępu do “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Proszę wybrać dostępną lokalizację i spróbować ponownie." #~ msgid "Enable Desktop Sounds" #~ msgstr "Nagrywaj dźwięki pulpitu" #~ msgid "Disable Desktop Sounds" #~ msgstr "Nie nagrywaj dźwięków pulpitu" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Przechwytywanie twojego ekranu bez żadnych zmartwień." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Nagrywanie dźwięku z mikrofonu, dźwięków z komputera lub obu " #~ "jednocześnie." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Wsparcie dla formatów WebM, MP4 , GIF i MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Wybór wielu źródeł." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Opcjonalne wykorzystanie akceleracji sprzętowej" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Możliwość wyboru monitora lub okna do nagrania." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Możliwość nagrywania wybranej zaznaczeniem części ekranu." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "" #~ "⏲️ Możliwość ustawienia opóźnienia, aby przygotować się przed rozpoczęciem " #~ "nagrywania." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Pokazuje lub ukrywa wskaźnik myszy." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Wybór miejsca docelowego dla nagrania." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Wykorzystuj pomocne skróty klawiszowe." #~ msgid "Toggle Computer Sounds" #~ msgstr "Przełącz dźwięki komputera" #~ msgid "_Delay" #~ msgstr "_Opóźnienie" #~ msgid "3 seconds" #~ msgstr "3 sekundy" #~ msgid "5 seconds" #~ msgstr "5 sekund" #~ msgid "10 seconds" #~ msgstr "10 sekund" #~ msgid "_Video Format" #~ msgstr "_Format Wideo" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Zapisz do…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Dodatek GStreamer może nie być zainstalowany. Jeżeli jest on " #~ "zainstalowany, a nadal nie działa poprawnie, proszę zgłosić to na stronie problemów Kooha." #~ msgid "Record Computer Sounds" #~ msgstr "Nagrywaj dźwięk z komputera" #~ msgid "Record From Microphone" #~ msgstr "Nagrywaj dźwięk z mikrofonu" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Anuluj opóźnienie" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Prawa autorskie 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Ukończono nagranie!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Nagranie zostało zapisane w “{}”" #~ msgid "Open File" #~ msgstr "Otwórz plik" #~ msgid "Screencast Portal Request Error" #~ msgstr "Błąd żądania Screencast Portal" #~ msgid "Pipeline Build Error" #~ msgstr "Błąd w budowie Pipeline" #~ msgid "Recording Error" #~ msgstr "Błąd nagrywania" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Upewnij się, aby sprawdzić zależności uruchomieniowe oraz stronę To nie " #~ "działa." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Upewnij się, że lokalizacja zapisu istnieje lub jest dostępna. Jeśli " #~ "rzeczywiście istnieje lub jest dostępna, coś poszło nie tak, proszę " #~ "zgłosić to na stronie " #~ "problemów Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Upewnij się, że lokalizacja zapisu istnieje. Jeżeli istnieje, to coś " #~ "poszło nie tak, proszę zgłosić to na stronie problemów Kooha." SeaDve-Kooha-12ed227/po/pt.po000066400000000000000000000542721505224011700156600ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # telmo bruno silva seabra , 2021. # ssantos , 2021, 2022, 2023. # Boud Knight , 2021. # Juliano de Souza Camargo , 2021. # Laura Vasconcelos Pereira Felippe , 2022. # Danilo Alfredo Vieira , 2023. # Alexandre Vergueiro , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-08-27 21:09+0000\n" "Last-Translator: Alexandre Vergueiro \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.7.1-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Grave o seu ecrã com estilo" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Captura de Tela;Gravador;Tela;Vídeo;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Capture sua tela de forma intuitiva e direta, sem distrações." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha é um gravador de tela simples com uma interface minimalista. Basta " "clicar no botão de gravação sem ter de configurar um monte de definições." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "As principais características da Kooha incluem as seguintes:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Grave microfone, áudio da área de trabalho, ou ambos ao mesmo tempo" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Suporte para WebM, MP4, GIF e formatos Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Selecione um monitor ou uma parte da tela para gravar" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Possibilidade de configurar local de salvamento, visibilidade do rato, " "taxa de quadros e atraso" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Codificação de aceleração de hardware experimental" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Selecionar área" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Cancelar" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Concluído" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Reiniciar seleção" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Geral" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Atraso (Segundos)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Intervalo de tempo antes da gravação começar" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Pasta de Gravações" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Pasta destino para as gravações" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Vídeo" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Formato" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Taxa de quadros" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Abrir Menu Principal" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Mostrar preferências" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Mostrar atalhos" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Sair" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Gravando" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Alternar gravação" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Alternar pausa" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Cancelar gravação" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Configurações" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Alternar áudio da área de trabalho" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Alternar microfone" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Alternar ponteiro" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Menu Principal" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Capturar um Monitor ou Janela" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Capturar uma Seleção da tela" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Ativar áudio da área de trabalho" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Desativar áudio da área de trabalho" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Ativar microfone" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Desativar microfone" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Mostrar ponteiro" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Ocultar ponteiro" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Iniciar gravação" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Gravar" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Esquecer fontes de vídeo selecionadas anteriormente" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Parar a gravação" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Parar" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Pausar a gravação" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Gravando em…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Cancelar gravação" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Em andamento…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Preferências" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Atalhos do teclado" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Acerca do Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Créditos do tradutor" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Doe (Compre um café para mim)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Traduzir" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Captura de tela gravada" #: src/application.rs:144 msgid "Show in Files" msgstr "Mostrar nos arquivos" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Falhou em buscar o driver de áudio padrão" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Certifique-se de que tem o PulseAudio instalado no seu sistema." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} hora" msgstr[1] "{time} horas" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minutos" msgstr[1] "{time} minutos" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} segundo" msgstr[1] "{time} segundos" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Falhou em determinar a pasta de gravação" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Esta taxa de quadros pode causar problemas de desempenho no formato " "selecionado." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Esse formato é experimental e não suportado." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Nenhum" #: src/recording.rs:42 msgid "No active profile" msgstr "Sem perfil ativo" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Falha ao iniciar gravação" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Confira {link} para obter ajuda." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Um plugin GStreamer pode não estar instalado." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Certifique-se de que o local de salvamento existe e é acessível." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Um erro ocorreu durante a gravação" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Falha ao abrir “{path}” para gravar" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Selecione a pasta de gravações" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Falha ao alternar pausa" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Uma gravação está atualmente em progresso. Sair imediatamente pode tornar a " "gravação não visualizável. Por favor, pare a gravação antes de sair." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Sair ira cancelar o processamento e pode tornar a gravação não visualizável." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Sair da aplicação?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Copiar para a área de transferência" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Copiado para a área de transferência" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Mostrar relatório de erro" #: src/window/mod.rs:289 msgid "Help" msgstr "Ajuda" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "OK, entendi" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Abrir Preferências?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "O formato selecionado anteriormente pode estar indisponível. Abra o menu de " "preferências e selecione um formato para continuar a gravação." #: src/window/mod.rs:308 msgid "Later" msgstr "Mais tarde" #: src/window/mod.rs:310 msgid "Open" msgstr "Abrir" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Uma gravação está em progresso" #: src/window/mod.rs:509 msgid "Paused" msgstr "Pausado" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Seleção" #~ msgid "Failed to start device monitor" #~ msgstr "Falha ao iniciar o monitor do aparelho" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Falha ao conectar-se com o daemon do PulseAudio" #~ msgid "No microphone source found" #~ msgstr "Nenhum microfone foi encontrado" #~ msgid "No desktop speaker source found" #~ msgstr "Nenhuma fonte de alto-falante da área de trabalho encontrada" #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Essa taxa de quadros pode causar problemas de performance." #~ msgid "approx." #~ msgstr "aproxim." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ Selecione um monitor, uma janela ou uma porção do ecrã para gravar" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Seleção de múltiplas fontes" #~ msgid "Dave Patrick Caberto" #~ msgstr "Danilo Alfredo Vieira" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2023 Danilo Alfredo Vieira" #~ msgid "Click here to view the video." #~ msgstr "Clique aqui para ver o vídeo." #~ msgid "Failed to select saving location" #~ msgstr "Falha ao selecionar o local para salvar" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Falha ao abrir ficheiro para escrita" #~ msgid "Donate (Liberapay)" #~ msgstr "Doar (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Doar (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Verifique {} para receber ajuda." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Falha ao abrir “{}” para escrita" #~ msgid "_Cancel" #~ msgstr "_Cancelar" #~ msgid "_Select" #~ msgstr "_Selecionar" #~ msgid "No folder selected" #~ msgstr "Nenhuma pasta selecionada" #~ msgid "Please choose a folder and try again." #~ msgstr "Por favor, escolha uma pasta e tente novamente." #~ msgid "Cannot access “{}”" #~ msgstr "Não foi possível acessar “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Por favor, escolha um local acessível e tente novamente." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Capture o seu ecrã sem qualquer problema." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Grave o seu microfone, sons do computador ou ambos ao mesmo tempo." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Suporte dos formatos de WebM, MP4, GIF e MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "Seleção de múltiplas fontes." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Codificação acelerada opcional via hardware" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Seleção de monitor ou janela para gravar." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Escolha uma secção para capturar determinada área do seu ecrã." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Defina o atraso para se preparar antes de iniciar a gravação." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Oculte ou exiba o ponteiro do mouse." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Escolha um local para gravar a gravação." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Utilize atalhos de teclado úteis." #~ msgid "Toggle Computer Sounds" #~ msgstr "Alternar sons do computador" #~ msgid "_Delay" #~ msgstr "A_traso" #~ msgid "5 seconds" #~ msgstr "5 segundos" #~ msgid "10 seconds" #~ msgstr "10 segundos" #~ msgid "_Video Format" #~ msgstr "Formato de _vídeo" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Gravar em…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Provavelmente o plugin do GStreamer não está instalado. Se estiver " #~ "instalado, mas não funcionar corretamente, por favor informe no site do Kooha." #~ msgid "Record Computer Sounds" #~ msgstr "Gravar Sons do Computador" #~ msgid "Record From Microphone" #~ msgstr "Gravar do Microfone" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Cancelar Atraso" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Gravação de ecrã gravada!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "A gravação foi salva em “{}”" #~ msgid "Open File" #~ msgstr "Abrir ficheiro" #~ msgid "Screencast Portal Request Error" #~ msgstr "Erro ao solicitar portal de gravação" #~ msgid "Pipeline Build Error" #~ msgstr "Falha durante a construção do Pipeline" #~ msgid "Recording Error" #~ msgstr "Falha ao gravar" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Certifique-se de verificar as dependências de tempo de execução e visite " #~ "o site Não " #~ "está funcionando." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Certifique-se de que o local em que você que salvar existe ou está " #~ "acessível. Se ele realmente existe ou é acessível, algo deu errado, por " #~ "favor, informe o erro na página de problemas do Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Certifique-se de que o local para gravar está válido. Se ele de fato " #~ "existir, alguma coisa está errada, por favor informe no site do Kooha." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "Grave o seu ecrã de forma simples e, fácil e sem distrações." #~ msgid "Please choose an accessible location and retry." #~ msgstr "Por favor escolha um local acessível e tente novamente." #~ msgid "Select a Folder" #~ msgstr "Selecione uma Pasta" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Selecione uma área da ecrã para gravar." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Suporte para os formatos gratuitos Matroska e WebM." #~ msgid "Open menu" #~ msgstr "Abrir menu" #~ msgid "Show keyboard shortcuts" #~ msgstr "Mostrar atalhos de teclado" #~ msgid "Toggle record" #~ msgstr "Mudar gravação" #~ msgid "Cancel delay" #~ msgstr "Cancelar Atraso" #~ msgid "Toggle computer sounds" #~ msgstr "Alterar sons de computador" #~ msgid "Toggle microphone" #~ msgstr "Alterar microfone" #~ msgid "Toggle pointer" #~ msgstr "Alterar ponteiro" #~ msgid "Delay" #~ msgstr "Atraso" #~ msgid "Video Format" #~ msgstr "Formato de Vídeo" #~ msgid "Save to…" #~ msgstr "Salvar para …" #~ msgid "Keyboard Shortcuts" #~ msgstr "Atalhos de teclado" #~ msgid "About Kooha" #~ msgstr "Sobre o Kooha" #~ msgid "Select" #~ msgstr "Selecione" #~ msgid "Toggle capture mode" #~ msgstr "Alterar modo de captura" #~ msgid "Full Screen" #~ msgstr "Ecrã cheio" #~ msgid "Processing" #~ msgstr "Em processamento" #~ msgid "Save location not set" #~ msgstr "Local de salvamento não definido" #~ msgid "Recording cannot start" #~ msgstr "Gravação não pode iniciar" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "O local que selecionou pode ter sido deletado." #~ msgid "The recording has been saved in" #~ msgstr "A gravação foi gravada em" #~ msgid "Record computer sounds" #~ msgstr "Gravar sons do computador" #~ msgid "Record from microphone" #~ msgstr "Gravar som do microfone" #~ msgid "Show pointer" #~ msgstr "Mostrar ponteiro" #~ msgid "Simple screen recorder" #~ msgstr "Gravador de ecrã simples" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Kooha é um simples gravador de ecrã construído em GTK. Ele permite gravar " #~ "o seu ecrã e também o seu áudio do microfone ou da área de trabalho." SeaDve-Kooha-12ed227/po/pt_BR.po000066400000000000000000000573541505224011700162470ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Vitor Sabino Cardoso da SIlva , 2021, 2022. # J. Lavoie , 2021. # Dave Patrick , 2021. # inkhorn , 2021. # André L. Alvares , 2022. # Império Linux , 2023. # Tiago Lucas Flach , 2023. # Claudio Campos , 2025. # John Peter Sa , 2025. # Xen'on , 2025. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2025-06-13 10:52+0000\n" "Last-Translator: Xen'on \n" "Language-Team: Portuguese (Brazil) \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: Weblate 5.12-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Grave sua tela com elegância" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Recorder;Screen;Video;Gravação da Tela;Gravador;Tela;Vídeo;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Capture sua tela de forma intuitiva e direta, sem distrações." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha é um gravador de tela simples e com interface minimalista. Apenas " "clique no botão de gravação e você não precisa fazer mais nada." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Os principais recursos do Kooha incluem:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Grave microfone, áudio da área de trabalho, ou ambos ao mesmo tempo" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Suporte para WebM, MP4, GIF e formatos Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Selecione um monitor ou uma parte da tela para gravar" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Possibilidade de configurar local de salvamento, visibilidade do mouse, " "taxa de quadros e atraso" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Codificação de aceleração de hardware experimental" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Opções de gravação e botão para iniciar a gravação" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Duração da gravação em andamento e botão para parar de gravar" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" "Contagem regressiva para iniciar a gravação e botão para cancelar a gravação" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Selecionar Área" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Cancelar" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Concluído" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Reiniciar seleção" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Geral" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Atraso (Segundos)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Intervalo de tempo antes de a gravação começar" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Pasta de Gravações" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Destino para as gravações" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Vídeo" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Formato" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Taxa de quadros" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Abrir menu" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Mostrar preferências" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Mostrar atalhos" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Sair" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Gravando" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Alternar o botão de gravação" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Alternar o botão de pausar" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Cancelar Gravação" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Configurações" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Alternar áudio da área de trabalho" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Alternar microfone" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Alternar ponteiro" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Menu principal" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Capturar um monitor ou janela" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Capturar uma área da tela" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Ativar áudio da área de trabalho" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Desativar áudio da área de trabalho" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Ativar microfone" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Desativar microfone" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Mostrar ponteiro" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Ocultar ponteiro" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Iniciar gravação" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Gravar" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Esquecer fontes de vídeo selecionadas anteriormente" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Parar gravação" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Parar" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Pausar gravação" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Gravando em…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Cancelar Gravação" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Em andamento…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Preferências" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Atalhos de teclado" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Sobre o Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Vitor Cardoso, Tiago Lucas Flach, inkhorn, john peter sa" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Doe (Me Compre Um Café)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Traduzir" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Gravação concluída" #: src/application.rs:144 msgid "Show in Files" msgstr "Mostrar em arquivos" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Falha ao encontrar o dispositivo de áudio padrão" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Certifique-se de que você tem o PulseAudio instalado no seu sistema." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} hora" msgstr[1] "{time} horas" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minuto" msgstr[1] "{time} minutos" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} segundo" msgstr[1] "{time} segundos" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Não foi possível definir a pasta de gravações" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Esta taxa de quadros pode causar problemas de desempenho no formato " "selecionado." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Esse formato é experimental e não suportado." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Nenhum" #: src/recording.rs:42 msgid "No active profile" msgstr "Sem perfil ativo" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Falha ao iniciar gravação" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Confira {link} para obter ajuda." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Um plugin GStreamer pode não estar instalado." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Certifique-se de que o local de salvamento existe e é acessível." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Um erro ocorreu durante a gravação" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Falha ao abrir “{path}” para escrita" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Selecione a pasta de gravações" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Falha ao alternar pausa" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Uma gravação está em andamento. Encerrar imediatamente pode fazer com que a " "gravação fique indisponível. Interrompa a gravação antes de fechar." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Sair cancelará o processamento e poderá fazer com que a gravação não possa " "ser reproduzida." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Deseja sair do aplicativo?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Copiar para a área de transferência" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Copiado para a área de transferência" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Mostrar relatório de erro" #: src/window/mod.rs:289 msgid "Help" msgstr "Ajuda" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "OK" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Abrir Preferências?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "O formato selecionado anteriormente pode estar indisponível. Abra o menu de " "preferências e selecione um formato para continuar a gravação." #: src/window/mod.rs:308 msgid "Later" msgstr "Mais tarde" #: src/window/mod.rs:310 msgid "Open" msgstr "Abrir" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Uma gravação está em andamento" #: src/window/mod.rs:509 msgid "Paused" msgstr "Pausado" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Seleção" #~ msgid "Failed to start device monitor" #~ msgstr "Falha ao iniciar o monitor do dispositivo" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Falha ao conectar-se com o daemon do PulseAudio" #~ msgid "No microphone source found" #~ msgstr "Nenhum microfone foi encontrado" #~ msgid "No desktop speaker source found" #~ msgstr "Nenhum alto-falante de desktop encontrado." #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Essa taxa de quadros pode causar problemas de performance." #~ msgid "approx." #~ msgstr "aproxim." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ Selecione um monitor, uma janela ou uma porção da tela para gravar" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Seleção de múltiplas fontes" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Clique aqui para ver o vídeo." #~ msgid "Failed to select saving location" #~ msgstr "Falha ao selecionar o local para salvar" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Falha ao abrir arquivo para escrita" #~ msgid "Donate (Liberapay)" #~ msgstr "Doar (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Doar (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Verifique {} para receber ajuda." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Falha ao abrir “{}” para escrita" #~ msgid "_Cancel" #~ msgstr "_Cancelar" #~ msgid "_Select" #~ msgstr "_Selecionar" #~ msgid "No folder selected" #~ msgstr "Nenhuma pasta selecionada" #~ msgid "Please choose a folder and try again." #~ msgstr "Por favor, escolha uma pasta e tente novamente." #~ msgid "Cannot access “{}”" #~ msgstr "Não foi possível acessar “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Por favor, escolha um local acessível e tente novamente." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Captura da sua tela sem complicações." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Gravação via microfone, sons do computador ou ambos ao mesmo tempo." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Suporte aos formatos de WebM, MP4, GIF e MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Seleção de fontes múltiplas." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Codificação acelerada via hardware opcional" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Selecione um monitor ou janela para gravar." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Escolha uma seção para capturar determinada área da sua tela." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Configure o delay para preparar-se antes de iniciar a gravação." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️Ocultar ou mostrar o ponteiro do mouse." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Escolha um local para salvar sua gravação." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Utilize atalhos de teclado úteis." #~ msgid "Toggle Computer Sounds" #~ msgstr "Alternar sons do computador" #~ msgid "_Delay" #~ msgstr "Adiamento" #~ msgid "5 seconds" #~ msgstr "5 segundos" #~ msgid "10 seconds" #~ msgstr "10 segundos" #~ msgid "_Video Format" #~ msgstr "_Formato de Vídeo" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Salvar em…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Provavelmente o plugin do GStreamer não está instalado. Se estiver " #~ "instalado, mas não funcionar corretamente, por favor informe no site do Kooha." #~ msgid "Record Computer Sounds" #~ msgstr "Gravar sons do computador" #~ msgid "Record From Microphone" #~ msgstr "Gravar via microfone" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Cancelar delay" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Direitos autorais 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Captura da tela concluída!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "A gravação foi salva em “{}”" #~ msgid "Open File" #~ msgstr "Abrir arquivo" #~ msgid "Screencast Portal Request Error" #~ msgstr "Erro ao solicitar portal de gravação" #~ msgid "Pipeline Build Error" #~ msgstr "Falha durante a construção do Pipeline" #~ msgid "Recording Error" #~ msgstr "Falha ao gravar" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Certifique-se de verificar as dependências de tempo de execução e visite " #~ "o site Não " #~ "está funcionando." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Verifique se o caminho especificado para salvamento existe ou está " #~ "acessível. Se estiver, algo não ocorreu como esperado, por favor reporte " #~ "à Página de Erros do " #~ "Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Certifique-se de que o local para salvar está válido. Se ele de fato " #~ "existir, alguma coisa está errada, por favor informe no site do Kooha." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "O plugin do GStreamer pode não estar instalado. Caso contrário, favor " #~ "relate o problema no Githubdo Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Certifique-se de que o caminho para salvar exista. Caso contrário, por " #~ "favor relate o problema no Github do Kooha." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "Capture sua tela de maneira direta e fácil, sem distrações." #~ msgid "Please choose an accessible location and retry." #~ msgstr "Por favor escolha um local acessível e tente novamente." #~ msgid "Select a Folder" #~ msgstr "Selecione uma Pasta" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Selecione uma área da tela para gravar." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Suporte para os formatos gratuitos Matroska e WebM." #~ msgid "Open menu" #~ msgstr "Abrir menu" #~ msgid "Show keyboard shortcuts" #~ msgstr "Mostrar atalhos do teclado" #~ msgid "Toggle record" #~ msgstr "Alternar gravação" #~ msgid "Toggle record pause" #~ msgstr "Alternar pausa de gravação" #~ msgid "Cancel delay" #~ msgstr "Cancelar atraso" #~ msgid "Toggle computer sounds" #~ msgstr "Alternar sons do computador" #~ msgid "Toggle microphone" #~ msgstr "Alternar microfone" #~ msgid "Toggle pointer" #~ msgstr "Alternar mouse" #~ msgid "Delay" #~ msgstr "Atraso" #~ msgid "Video Format" #~ msgstr "Formato de Vídeo" #~ msgid "Save to…" #~ msgstr "Salvar em…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Atalhos do Teclado" #~ msgid "About Kooha" #~ msgstr "Sobre o Kooha" #~ msgid "Sorry! An error has occured." #~ msgstr "Desculpe! Ocorreu um erro." #~ msgid "Videos" #~ msgstr "Vídeos" #~ msgid "Select" #~ msgstr "Selecione" #~ msgid "The recording has been saved in {saving_location}" #~ msgstr "A gravação foi salva em {saving_location}" #~ msgid "Inaccessible location '{directory}'" #~ msgstr "Local inacessível '{directory}'" #~ msgid "Toggle capture mode" #~ msgstr "Alternar modo de captura" #~ msgid "Full Screen" #~ msgstr "Tela Cheia" #~ msgid "Processing" #~ msgstr "Processando" #~ msgid "Save location not set" #~ msgstr "Local de salvamento não definido" #~ msgid "Recording cannot start" #~ msgstr "Gravação não pode iniciar" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "O local que você selecionou pode ter sido deletado." #~ msgid "The recording has been saved in" #~ msgstr "A gravação foi gravada em" #~ msgid "Record computer sounds" #~ msgstr "Gravar sons do computador" #~ msgid "Record from microphone" #~ msgstr "Gravar som do microfone" #~ msgid "Show pointer" #~ msgstr "Mostrar ponteiro" #~ msgid "Elegantly record your screen " #~ msgstr "Grave sua tela elegantemente " #~ msgid "Simple screen recorder" #~ msgstr "Gravador de Tela Simples" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Kooha é um simples gravador de tela feito com GTK. Ele permite que você " #~ "grave sua tela e também o aúdio do seu microfone ou desktop." SeaDve-Kooha-12ed227/po/ro.po000066400000000000000000000265041505224011700156520ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # C0sM1n , 2023. # Gabriel Cozma , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-03-24 21:01+0000\n" "Last-Translator: Gabriel Cozma \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" "X-Generator: Weblate 5.5-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Înregistrați elegant ecranul" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Recorder;Ecran;Video;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Capturați-vă ecranul într-un mod intuitiv și simplu, fără distrageri." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha este un simplu înregistrator de ecran, cu o interfață minimalistă. " "Puteți doar să faceți un clic pe butonul de înregistrare fără a fi nevoie să " "configurați o grămadă de setări." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Principalele caracteristici ale lui Kooha includ următoarele:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Înregistrați microfon, sunet desktop sau ambele în același timp" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Suport pentru formatele WebM, MP4, GIF și Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Selectați un monitor sau o porțiune a ecranului pentru a înregistra" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Locație configurabilă de salvare, vizibilitate indicator, rata de cadre și " "întârziere" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Codare accelerată hardware experimentală" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Selectați Zona" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Renunță" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Terminat" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Resetează selecția" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "General" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Întârziere (secunde)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Interval de timp înainte de începerea înregistrării" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Fișier de înregistrări" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Fișierul de destinație pentru înregistrări" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Format" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Rata de Cadre" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Deschideți Meniu" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Afișați preferințe" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Afișați comenzile rapide" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Închide programul" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Înregistrare" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Comutați înregistrarea" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Comutați întreruperea" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Anulează înregistrarea" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Setări" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Meniul principal" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Preferințe" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "Scurtături _tastatură" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" "Gabriel Cozma\n" "Danny3" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Donează (Cumpără-mi o cafea)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Traduceți" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "" #: src/application.rs:144 msgid "Show in Files" msgstr "" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" msgstr[2] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" msgstr[2] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "" #: src/window/mod.rs:546 msgid "Normal" msgstr "" #: src/window/mod.rs:547 msgid "Selection" msgstr "" #~ msgid "Dave Patrick Caberto" #~ msgstr "David Patrick Caberto" SeaDve-Kooha-12ed227/po/ru.po000066400000000000000000000657731505224011700156730ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Artem , 2021. # Dzmitry Neviadomski , 2021. # Artem , 2021. # Noel Fritz , 2021. # MrWooltrest , 2022. # Alex , 2022. # Cherro59 , 2022. # Feodor Rusanov , 2022. # VBB , 2022. # Daudix UFO , 2022. # Vik , 2022. # Vik , 2022. # Сергей , 2023, 2024. # Степан Наумов , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-09-28 15:15+0000\n" "Last-Translator: Сергей \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.8-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Записывайте экран элегантно" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Скринкаст;Запись;Экран;Видео;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Захватывайте свой экран интуитивным и простым способом без отвлечения." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha — это простая программа для записи экрана с минималистичным " "интерфейсом. Вы можете просто нажать кнопку записи без необходимости " "настраивать кучу параметров." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Основные функции Kooha включают:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Запись с микрофона, компьютера или все сразу" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Поддержка форматов WebM, MP4, GIF и Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Выбор для записи всего экрана или только его части" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Настройка места сохранения, видимости курсора, частоты кадров и задержки" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Экспериментальное кодирование с аппаратным ускорением" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Параметры записи и кнопка начала записи" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Индикатор продолжительности и кнопка остановки записи" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "Обратный отсчёт для начала записи и кнопка для отмены" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Выберите область" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Отменить" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Готово" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Сброс" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Основное" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Задержка (сек.)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Промежуток времени до начала записи" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Папка с записями" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Папка назначения для сохранения записей" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Видео" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Формат" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Частота кадров" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Открыть меню" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Показать параметры" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Показать комбинации клавиш" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Выход" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Запись" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Вкл./Выкл. запись" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Вкл./Выкл. паузу" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Отменить запись \"ignore-same\"" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Настройки" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Вкл./Выкл. звук компьютера" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Вкл./Выкл. микрофон" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Вкл./Выкл. курсор" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Главное меню" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Запись монитора или окна" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Запись области экрана" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Включить звук компьютера" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Выключить звук компьютера" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Включить микрофон" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Выключить микрофон" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Показать курсор" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Скрыть курсор" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Начать запись" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Запись" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Забыть ранее выбранные источники видео" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Остановить запись" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Остановить" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Пауза \"ignore-same\"" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Запись через…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Отменить запись" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Очистка…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Параметры" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Комбинации клавиш" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_О Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" "Ковалев Артем, Давид Лапшин, ViktorOn <https://github.com/viktoron>" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Пожертвовать (Купите мне кофе)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Перевести" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Скринкаст записан" #: src/application.rs:144 msgid "Show in Files" msgstr "Показать в файлах" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Не удалось найти аудиоустройство, установленное по умолчанию" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Убедитесь, что в вашей системе установлен PulseAudio." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} час" msgstr[1] "{time} часа" msgstr[2] "{time} часов" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} минута" msgstr[1] "{time} минуты" msgstr[2] "{time} минут" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} секунда" msgstr[1] "{time} секунды" msgstr[2] "{time} секунд" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Не удалось установить папку для записей" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Такая частота кадров может вызвать проблемы с производительностью для " "выбранного формата." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Этот формат является экспериментальным и не поддерживается." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Нет" #: src/recording.rs:42 msgid "No active profile" msgstr "Нет активного профиля" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Не удалось начать запись" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Для получения помощи посетите {link}." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Плагин GStreamer, возможно, не установлен." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Убедитесь, что место сохранения существует и доступно." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Во время записи произошла ошибка" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Не удалось открыть «{path}» для записи" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Выберите папку для записей" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Не удалось включить/выключить паузу" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "В настоящее время идет запись. Немедленный выход может привести к тому, что " "запись окажется недоступной для воспроизведения. Пожалуйста, прежде чем " "выйти, остановите запись." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "При выходе обработка будет отменена, и запись может оказаться недоступной " "для воспроизведения." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Выйти из приложения?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Скопировать в буфер обмена" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Скопировано в буфер обмена" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Показать подробности ошибки" #: src/window/mod.rs:289 msgid "Help" msgstr "Справка" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Хорошо, всё понятно" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Открыть настройки?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Выбранный ранее формат, возможно, недоступен. Откройте настройки и выберите " "формат для продолжения записи." #: src/window/mod.rs:308 msgid "Later" msgstr "Позже" #: src/window/mod.rs:310 msgid "Open" msgstr "Открыть" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Идет запись" #: src/window/mod.rs:509 msgid "Paused" msgstr "Приостановлено" #: src/window/mod.rs:546 msgid "Normal" msgstr "Нормальный" #: src/window/mod.rs:547 msgid "Selection" msgstr "Область" #~ msgid "Failed to start device monitor" #~ msgstr "Не удалось запустить монитор устройства" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Не удалось подключиться к демону PulseAudio" #~ msgid "No microphone source found" #~ msgstr "Микрофон не найден" #~ msgid "No desktop speaker source found" #~ msgstr "Динамик компьютера не найден" #~ msgid "Ok" #~ msgstr "Ок" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Такая частота кадров может вызвать проблемы с производительностью." #~ msgid "approx." #~ msgstr "около." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ Выбор монитора, окна или части экрана для записи" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Выбор нескольких источников" #~ msgid "No Profile" #~ msgstr "Нет профиля" #~ msgid "Dave Patrick Caberto" #~ msgstr "Дэйв Патрик Каберто" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Дэйв Патрик Каберто" #~ msgid "Click here to view the video." #~ msgstr "Нажмите здесь, чтобы посмотреть видео." #~ msgid "Failed to select saving location" #~ msgstr "Не удалось выбрать место сохранения" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Не удалось открыть файл для записи" #~ msgid "Failed to select folder" #~ msgstr "Не удалось выбрать папку" #~ msgid "Donate (Liberapay)" #~ msgstr "Пожертвовать (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Пожертвовать (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Обратитесь к {} за помощью." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Не удалось открыть \"{}\" для записи" #~ msgid "_Cancel" #~ msgstr "_Отмена" #~ msgid "_Select" #~ msgstr "_Выбрать" #~ msgid "No folder selected" #~ msgstr "Папка не выбрана" #~ msgid "Please choose a folder and try again." #~ msgstr "Пожалуйста, выберите папку и попробуйте снова." #~ msgid "Cannot access “{}”" #~ msgstr "Не удается получить доступ к \"{}\"" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Пожалуйста, выберите доступное место и повторите попытку." #~ msgid "Enable Desktop Sounds" #~ msgstr "Включить звуки рабочего стола" #~ msgid "Disable Desktop Sounds" #~ msgstr "Выключить звуки рабочего стола" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Захват экран без каких-либо хлопот." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Запись звука вашего микрофона, звуков компьютера или и того, и другого " #~ "одновременно." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Поддержка форматов WebM, MP4, GIF и MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Выбор нескольких источников." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Дополнительное кодирование с аппаратным ускорением." #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Выбор монитора или окна для записи." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Создание выделения для записи определённой области вашего экрана." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Установка задержки для подготовки перед началом записи." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Скрывать или показывать курсор мыши." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Выбор места сохранения вашей записи." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Используйте полезные комбинации клавиш." #~ msgid "Toggle Computer Sounds" #~ msgstr "Переключить звуки компьютера" #~ msgid "_Delay" #~ msgstr "_Задержка" #~ msgid "3 seconds" #~ msgstr "3 секунды" #~ msgid "5 seconds" #~ msgstr "5 секунд" #~ msgid "10 seconds" #~ msgstr "10 секунд" #~ msgid "_Video Format" #~ msgstr "_Формат видео" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Сохранить в…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Плагин GStreamer, возможно, не установлен. Если он установлен, но не " #~ "работает, пожалуйста сообщите об этом на странице \"Issues Kooha\"." #~ msgid "Record Computer Sounds" #~ msgstr "Запись звуков компьютера" #~ msgid "Record From Microphone" #~ msgstr "Запись с микрофона" #~ msgid "Dave Patrick" #~ msgstr "Дэйв Патрик" #~ msgid "Cancel Delay" #~ msgstr "Отменить Задержку" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Авторское право 2021 Дейв Патрик" #~ msgid "Screencast Recorded!" #~ msgstr "Скринкаст записан!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Запись была сохранена в \"{}\"" #~ msgid "Open File" #~ msgstr "Открыть файл" #~ msgid "Screencast Portal Request Error" #~ msgstr "Ошибка запроса портала скринкаста" #~ msgid "Pipeline Build Error" #~ msgstr "Ошибка построения Pipeline" #~ msgid "Recording Error" #~ msgstr "Ошибка записи" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Не забудьте проверить зависимости и страницу \"Оно не работает!\"." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Убедитесь что этот путь для сохранения существует и доступен для записи. " #~ "Если он существует и доступен для записи, что-то пошло не так. Пожалуйста " #~ "сообщите это на странице \"Неполадки Kooha\" ." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Будьте уверены, что путь сохранения существует. Если он существует, то " #~ "что то пошло не так. Пожалуйста, уведомите нас об этом на странице \"Проблемы " #~ "Kooha\"." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "Записывайте экран понятным и простым способом без отвлечений." #~ msgid "Please choose an accessible location and retry." #~ msgstr "Пожалуйста, выберите доступное для записи место и повторите." #~ msgid "Select a Folder" #~ msgstr "Выберите папку" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Выбор области экрана для записи." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Поддержка свободных форматов Matroska и WebM." #~ msgid "Open menu" #~ msgstr "Открыть меню" #~ msgid "Show keyboard shortcuts" #~ msgstr "Показать сочетания клавиш" #~ msgid "Toggle record" #~ msgstr "Начать/остановить запись" #~ msgid "Cancel delay" #~ msgstr "Отменить задержку" #~ msgid "Toggle computer sounds" #~ msgstr "Включить/выключить запись звуков компьютера" #~ msgid "Toggle microphone" #~ msgstr "Включить/выключить запись микрофона" #~ msgid "Toggle pointer" #~ msgstr "Показать/спрятать курсор" #~ msgid "Delay" #~ msgstr "Задержка" #~ msgid "Video Format" #~ msgstr "Формат видео" #~ msgid "Save to…" #~ msgstr "Сохранить в…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Сочетания клавиш" #~ msgid "About Kooha" #~ msgstr "О Kooha" #~ msgid "Select" #~ msgstr "Выбрать" #~ msgid "Toggle capture mode" #~ msgstr "Переключить режим записи" #~ msgid "Full Screen" #~ msgstr "Полный экран" #~ msgid "Processing" #~ msgstr "Обработка" #~ msgid "Save location not set" #~ msgstr "Место сохранения не установлено" #~ msgid "Recording cannot start" #~ msgstr "Запись не может быть начата" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "Выбранное для записи место, вероятно, было удалено." #~ msgid "The recording has been saved in" #~ msgstr "Запись была сохранена в" #~ msgid "Record computer sounds" #~ msgstr "Записывать звуки компьютера" #~ msgid "Record from microphone" #~ msgstr "Записывать микрофон" #~ msgid "Show pointer" #~ msgstr "Показывать указатель" #~ msgid "Elegantly record your screen " #~ msgstr "Записывайте экран элегантно " SeaDve-Kooha-12ed227/po/si.po000066400000000000000000000432341505224011700156440ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # "HelaBasa Group (හෙළබස සමූහය)" , 2023. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-02-24 02:33+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Sinhala \n" "Language: si\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.5-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "හොඳින් තිරය පටිගත කරන්න" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Recorder;Screen;Video;පටිගත;දෘශ්‍යක;තිරය;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "වික්ෂිප්ත නොවී ඔබගේ තිරය පහසුවෙන් සහ සරලව පටිගත කර ගන්න." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha යනු ඉතාමත් සරල අතුරු මුහුණතක් සහිත තිර පටිගතයකි. ඔබට සැකසුම් බොහොමයක් සීරු මාරුවකින් තොරව " "තනි එබීමකින් පටිගත කිරීමට හැකිය." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Kooha යෙදුමේ පහත විශේෂාංග ඇතුළත්ය:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ ශබ්දවාහිනිය, වැඩතලයේ හඬ හෝ දෙකම එකවර පටිගත කරන්න" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 WebM, MP4, GIF සහ මාට්‍රොස්කා ආකෘති සඳහා සහාය දක්වයි" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "🛠️ සුරැකෙන ස්ථානය, ඊතලයේ දෘශ්‍යතාව, රාමු අනුපාතය සහ ප්‍රමාදය සැකසීමට හැකිය" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 පරීක්‍ෂාත්මක දෘඩාංග ත්වරණිත ආකේතනය ඇත" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "පෙදෙසක් තෝරන්න" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "අවලංගු" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "අහවරයි" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "තේරීම යළි සකසන්න" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "ප්‍රධාන" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "ප්‍රමාදය (තත්පර)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "පටිගත බහාලුම" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "දෘශ්‍යකය" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "ආකෘතිය" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "රාමු අනුපාතය" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "වට්ටෝරුව අරින්න" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "අභිප්‍රේත පෙන්වන්න" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "කෙටිමං පෙන්වන්න" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "ඉවත් වන්න" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "පටිගත වෙමින්" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "පටිගත කරන්න" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "විරාමයක් තබන්න" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "අවලංගු කරන්න" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "සැකසුම්" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "වැඩතලයේ හඬ සක්‍රිය කරන්න" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "ශබ්දවාහිනිය සක්‍රිය කරන්න" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "ඊතලය සබල කරන්න" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "ප්‍රධාන වට්ටෝරුව" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "තිරයක් හෝ කවුළුවක් ග්‍රහණය" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "තිරයේ කොටසක් ග්‍රහණය" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "වැඩතලයේ හඬ සබල කරන්න" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "වැඩතලයේ හඬ අබල කරන්න" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "ශබ්දවාහිනිය සබල කරන්න" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "ශබ්දවාහිනිය අබල කරන්න" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "ඊතලය පෙන්වන්න" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "ඊතලය සඟවන්න" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "පටිගතය අරඹන්න" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "පටිගත කරන්න" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "කලින් තේරූ දෘශ්‍ය මූලාශ්‍රය අමතක කරන්න" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "පටිගතය නවතන්න" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "නවතන්න" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "විරාමයක්" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "මෙහි පටිගත වේ…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "අවලංගු කරන්න" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "ද්‍යෝර හැරෙමින්…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "අභිප්‍රේත (_P)" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "යතුරුපුවරුවේ කෙටිමං (_K)" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "Kooha ගැන (_A)" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "පරිවර්තනයට ස්තූතිය" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "ගිට්හබ්" #: src/about.rs:50 msgid "Translate" msgstr "පරිවර්තනය" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "තිරය විකාශනය පටිගත විය" #: src/application.rs:144 msgid "Show in Files" msgstr "ගොනුවල පෙන්වන්න" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "ඔබගේ පද්ධතියේ පල්ස්ඕඩියෝ ස්ථාපනය කර තිබෙන බවට වග බලා ගන්න." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "මෙම ආකෘතිය පරීක්‍ෂාත්මකයි හා සහාය නොදක්වයි." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "කිසිවක් නැත" #: src/recording.rs:42 msgid "No active profile" msgstr "සක්‍රිය පැතිකඩක් නැත" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "පටිගතය ඇරඹීමට අසමත් විය" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "GStreamer පේනුවක් ස්ථාපනය කර නැති බව පෙනෙයි." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "සුරැකෙන ස්ථානය තිබෙන හා ප්‍රවේශ විය හැකි බවට වග බලා ගන්න." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "පටිගතය අතරතුර දෝෂයක් සිදු විය" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "පටිගත බහාලුම තෝරන්න" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "විරාමයක් තැබීමට නොහැකි විය" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "පසුරුපුවරුවට පිටපතක්" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "පසුරුපුවරුවට පිටපත් විය" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "දෝෂය පැහැදිලිව පෙන්වන්න" #: src/window/mod.rs:289 msgid "Help" msgstr "උදව්" #: src/window/mod.rs:294 #, fuzzy msgid "Ok, Got It" msgstr "හරි, තේරුණා" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "අභිප්‍රේත අරින්නද?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "කලින් තේරූ ආකෘතිය නොතිබිය හැකිය. දිගටම පටිගත කිරීමට අභිප්‍රේත විවෘත කර ආකෘතියක් තෝරන්න." #: src/window/mod.rs:308 msgid "Later" msgstr "පසුව" #: src/window/mod.rs:310 msgid "Open" msgstr "අරින්න" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "විරාමයකි" #: src/window/mod.rs:546 msgid "Normal" msgstr "සාමාන්‍ය" #: src/window/mod.rs:547 msgid "Selection" msgstr "තේරීම" #~ msgid "Failed to start device monitor" #~ msgstr "උපාංග නිරීක්‍ෂකය ඇරඹීමට අසමත් විය" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "පල්ස්ඕඩියෝ වැඩසටහනට සැබැඳීමට අසමත් විය" #~ msgid "No microphone source found" #~ msgstr "ශබ්දවාහිනියක් හමු නොවිණි" #~ msgid "No desktop speaker source found" #~ msgstr "වැඩතල විකාශකයක් හමු නොවිණි" #~ msgid "Ok" #~ msgstr "හරි" #~ msgid "This frame rate may cause performance issues." #~ msgstr "මෙම රාමු අනුපාතය කාර්ය සාධනයට බලපෑ හැකිය." #~ msgid "approx." #~ msgstr "දළ." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ පටිගත කිරීමට තිරයක්, කවුළුවක් හෝ තිරයේ කොටසක් තෝරන්න" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 මූලාශ්‍ර කිහිපයක් තෝරාගන්න" #~ msgid "Dave Patrick Caberto" #~ msgstr "ඩේව් පැට්‍රික් කැබර්ටෝ" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2023 ඩේව් පැට්‍රික් කැබර්ටෝ" #~ msgid "Click here to view the video." #~ msgstr "දෘශ්‍යකය බැලීමට මෙතැන ඔබන්න." #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "මැට්‍රොස්කා" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "ලිවීම සඳහා ගොනුව ඇරීමට අසමත් විය" #~ msgid "Donate (Liberapay)" #~ msgstr "පරිත්‍යාග (ලිබෙරාපේ)" #~ msgid "Donate (PayPal)" #~ msgstr "පරිත්‍යාග (පේපෑල්)" #~ msgid "Check out {} for help." #~ msgstr "උදව් සඳහා {} බලන්න." #~ msgid "Failed to open “{}” for writing" #~ msgstr "ලිවීම සඳහා “{}” ඇරීමට අසමත් විය" #~ msgid "_Cancel" #~ msgstr "අවලංගු (_C)" #~ msgid "_Select" #~ msgstr "තෝරන්න (_S)" #~ msgid "No folder selected" #~ msgstr "බහාලුමක් තෝරා නැත" #~ msgid "Please choose a folder and try again." #~ msgstr "බහාලුමක් තෝරා නැවත උත්සාහ කරන්න." #~ msgid "Cannot access “{}”" #~ msgstr "“{}” වෙත ප්‍රවේශයට නොහැකිය" #~ msgid "Please choose an accessible location and try again." #~ msgstr "ප්‍රවේශ විය හැකි ස්ථානයක් තෝරා නැවත උත්සාහ කරන්න." SeaDve-Kooha-12ed227/po/sk.po000066400000000000000000000516101505224011700156430ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # MartinIIOT , 2021. # Dušan Kazik , 2021. # Marek Ľach , 2022. # Jozef Číž , 2023. # LvargaDS , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-04-23 23:07+0000\n" "Last-Translator: LvargaDS \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" "X-Generator: Weblate 5.5-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Elegantne zaznamenáva vašu obrazovku" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "záznam;záznamník;rekordér;obrazovka;video;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "Zachytávajte vašu obrazovku intuitívnym a zreteľným spôsobom bez " "rozptyľovania." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Aplikácia Kooha je jednoduchým záznamníkom obrazovky s minimalistickým " "rozhraním. Stačí len kliknúť na zaznamenávacie tlačidlo bez zložitého " "nastavovania." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Hlavnými funkciami aplikácie Kooha sú:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Nahrávaj mikrofón, zvuk z počítača, alebo oboje naraz" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Podpora pre WebM, MP4, GIF, a Matroska formáty" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "Zvoľte obrazovku, alebo jej časť, ktorá sa má nahrávať" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Konfigurovateľné miesto uloženia, viditeľnosť kurzoru, obnovovacia " "frekvencia, a oneskorenie" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Experimentálne hardvérovo akcelerované kódovanie" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Zvoľ oblasť" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Zrušiť" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Hotovo" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Resetovať oblasť" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Všeobecné" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Oneskorenie (Sekundy)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Čas čakania pred začatím nahrávania" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Priečinok nahrávok" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Cieľový adresár pre nahrávky" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Formát" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Snímková frekvencia" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Otvorenie ponuky" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Zobraziť Nastavenia" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Zobrazenie klávesových skratiek" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Ukončit" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Zaznamenávanie" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Prepnutie zaznamenávania" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Prepnutie pozastavenia" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Zrušiť záznam" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Nastavenia" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Prepnutie zvuku počítača" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Prepnutie mikrofónu" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Prepnutie ukazovateľa" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Hlavná ponuka" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Zachytí monitor alebo okno" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Zachytí výber obrazovky" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Povoliť zvuk počítača" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Zakázať zvuk počítača" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Povoliť mikrofón" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Zakázať mikrofón" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Zobrazovať kurzor" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Skryť kurzor" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Začať nahrávanie" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Zaznamenať" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Zabudnúť na predošle vybrané zdroje pre video" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Zastaviť nahrávanie" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Zastaviť" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Pozastaviť nahrávanie" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Zaznamenáva sa…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Zrušiť záznam" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Čistí sa…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Nastavenia" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Klávesové skratky" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_O aplikácii Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" "MartinIIOT ,\n" "Dušan Kazik ,\n" "Ľubo Varga https://github.com/LvargaDS," #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Prispieť (Kúp mi kávu)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Prekladať" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Nahrávanie obrazovky dokončené" #: src/application.rs:144 msgid "Show in Files" msgstr "Ukázať v Súboroch" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Chyba pri hľadaní štandardného audio zariadenia" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Uistite sa, že máte na vašom systéme nainštalované PulseAudio." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} hodina" msgstr[1] "{time} hodiny" msgstr[2] "{time} hodín" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minúta" msgstr[1] "{time} minúty" msgstr[2] "{time} minút" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} sekunda" msgstr[1] "{time} sekundy" msgstr[2] "{time} sekúnd" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Zlyhalo nastavenie adresáru pre nahrávky" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Zvolaná snímková frekvencia môže spôsobovať výkonnostný problém pri zvolenom " "formáte." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Tento formát je experimentálny a nie je k nemu poskytovaná podpora." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Žiadne" #: src/recording.rs:42 msgid "No active profile" msgstr "Žiaden aktívny profil" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Začatie nahrávania zlyhalo" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Pre pomoc navštívte {link}." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "GStreamer plugin možno nie je nainštalovaný." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Overte si, že miesto na ukladanie existuje a je dostupné." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Počas nahrávania nastala chýba" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Nepodarilo sa otvoriť „{path}“ pre zápis" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Výber priečinka pre záznamy" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Nepodarilo sa zmeniť stav pauznutia" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Nahrávanie práve prebieha. Okamžité skončenie môže spôsobiť, že nahrávka sa " "nebude dať prehrať. Prosím stopnite nahrávanie pred ukončením aplikácie." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Ukončenie aplikácie zruší prebiehajúce spracovávanie a môže spôsobiť, že " "nahrávka nebude prehrateľná." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Vypnúť aplikáciu?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Kopírovať do schránky" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Skopírované do schránky" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Ukázať podrobnosti chyby" #: src/window/mod.rs:289 msgid "Help" msgstr "Pomoc" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Ok, Viem" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Otvoriť nastavenia?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Formát zvolený minule môže byť nedostupný. Otvorte nastavenia a zvolte " "formát pre pokračovanie v nahrávaní." #: src/window/mod.rs:308 msgid "Later" msgstr "Neskôr" #: src/window/mod.rs:310 msgid "Open" msgstr "Otvoriť" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Nahrávanie aktívne" #: src/window/mod.rs:509 msgid "Paused" msgstr "Pozastavené" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normálne" #: src/window/mod.rs:547 msgid "Selection" msgstr "Výber" #~ msgid "No microphone source found" #~ msgstr "Zdroj mikrofónu nenájdený" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Táto snímková frekvencia môže spôsobiť problémy s výkonom." #~ msgid "approx." #~ msgstr "približne" #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ Zvoľ monitor, okno, alebo časť obrazovky na nahávanie" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Výber viacerých zdrojov" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Kliknite sem pre zhliadnutie videá." #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Failed to open file for writing" #~ msgstr "Nepodarilo sa otvoriť súbor na zápis" #~ msgid "Donate (Liberapay)" #~ msgstr "Prispieť (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Prispieť (PayPal)" #~ msgid "Failed to open “{}” for writing" #~ msgstr "Nepodarilo sa otvoriť “{}” k zápisu" #~ msgid "_Cancel" #~ msgstr "_Zrušiť" #~ msgid "_Select" #~ msgstr "V_ybrať" #~ msgid "No folder selected" #~ msgstr "Žiadna zložka nevybraná" #~ msgid "Please choose a folder and try again." #~ msgstr "Prosím vyberte zložku a skúste to znova." #~ msgid "Cannot access “{}”" #~ msgstr "Nedá sa získať prístup k priečinku „{}“" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Prosím, zvoľte prístupné umiestnenie a skúste to znovu." #~ msgid "Enable Desktop Sounds" #~ msgstr "Povoliť zvuky plochy" #~ msgid "Disable Desktop Sounds" #~ msgstr "Zakázať zvuky plochy" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Zachytenie vašej obrazovky bez problémov." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Záznam vášho mikrofónu, počítačových zvukov alebo oboch súčasne." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Podpora formátov WebM, MP4, GIF a MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Výber viacerých zdrojov." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Voliteľné dekódovanie akcelerované pomocou hardvéru." #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Výber monitora alebo okna na zaznamenanie." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Vytvorenie výberu na zachytenie určitej oblasti vašej obrazovky." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Nastavenie oneskorenia na prípravu pred zahájením zaznamenávania." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Skrytie alebo zobrazenie ukazovateľa myši." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Voľba miesta pre uloženie vášho záznamu." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Využitie užitočných klávesových skratiek." #~ msgid "Toggle Computer Sounds" #~ msgstr "Prepnutie počítačových zvukov" #~ msgid "_Delay" #~ msgstr "Onesko_renie" #~ msgid "3 seconds" #~ msgstr "3 sekundy" #~ msgid "5 seconds" #~ msgstr "5 sekúnd" #~ msgid "10 seconds" #~ msgstr "10 sekúnd" #~ msgid "_Video Format" #~ msgstr "Formát _videa" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "Uložiť do…" #~ msgid "Record Computer Sounds" #~ msgstr "Zaznamená počítačové zvuky" #~ msgid "Record From Microphone" #~ msgstr "Zaznamená z mikrofónu" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Zrušiť oneskorenie" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Autorské práva 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Záznam obrazovky bol vytvorený!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Záznam bol uložený do „{}“" #~ msgid "Open File" #~ msgstr "Otvoriť súbor" #~ msgid "Screencast Portal Request Error" #~ msgstr "Chyba požiadavky portálu záznamu obrazovky" #~ msgid "Pipeline Build Error" #~ msgstr "Chyba zostavenia zreťazenia" #~ msgid "Recording Error" #~ msgstr "Chyba záznamu" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Skontrolujte závislosti prostredia a stránku Nefunguje to." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Zásuvný modul platformy GStreamer možno nie je nainštalovaný. Ak nie je, " #~ "nahláste to, prosím na stránke Problémy s aplikáciou Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Uistite sa, že umiestnenie pre uloženie existuje. Ak nie, niekde sa stala " #~ "chyba, ktorú nahláste, prosím na stránke Problémy s aplikáciou Kooha." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "Zachyťte obrazovku priamym a bezbolestným spôsobom bez rušenia." #~ msgid "Please choose an accessible location and retry." #~ msgstr "Vyberte prístupné umiestnenie a skúste to znova." #~ msgid "Select a Folder" #~ msgstr "Vyberte priečinok" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Vyberte oblasť obrazovky, ktorú chcete zaznamenať." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Podpora bezplatných formátov Matroska a WebM." #~ msgid "Open menu" #~ msgstr "Otvoriť menu" #~ msgid "Show keyboard shortcuts" #~ msgstr "Zobraziť klávesové skratky" #~ msgid "Toggle record" #~ msgstr "Prepnúť záznam" #~ msgid "Cancel delay" #~ msgstr "Zrušiť oneskorenie" #~ msgid "Toggle computer sounds" #~ msgstr "Prepnúť zvuky počítača" #~ msgid "Toggle microphone" #~ msgstr "Prepnúť mikrofón" #~ msgid "Toggle pointer" #~ msgstr "Prepnúť kurzor" #~ msgid "Delay" #~ msgstr "Oneskorenie" #~ msgid "Video Format" #~ msgstr "Formát videa" #~ msgid "Save to…" #~ msgstr "Uložiť do…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Klávesové skratky" #~ msgid "About Kooha" #~ msgstr "O Kooha" #~ msgid "Select" #~ msgstr "Vybrať" #~ msgid "Toggle capture mode" #~ msgstr "Prepnúť režim snímania" #~ msgid "Full Screen" #~ msgstr "Celá obrazovka" #~ msgid "Processing" #~ msgstr "Spracovanie" #~ msgid "Save location not set" #~ msgstr "Umiestnenie uloženia nie je nastavené" #~ msgid "Recording cannot start" #~ msgstr "Nahrávanie sa nedá spustiť" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "Miesto uloženia, ktoré ste vybrali, mohlo byť odstránené." #~ msgid "The recording has been saved in" #~ msgstr "Záznam bol uložený v" #~ msgid "Record computer sounds" #~ msgstr "Zaznamenať zvuky počítača" #~ msgid "Record from microphone" #~ msgstr "Zaznamenať zvuk z mikrofónu" #~ msgid "Show pointer" #~ msgstr "Zobraziť kurzor" #~ msgid "Elegantly record your screen " #~ msgstr "Elegantne zaznamenajte svoju obrazovku " SeaDve-Kooha-12ed227/po/sr.po000066400000000000000000000400701505224011700156500ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Dušan Simić , 2021. # Душан Симић , 2021. # Luka Momčilović , 2023. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2023-12-16 01:06+0000\n" "Last-Translator: Luka Momčilović \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 5.3\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Сними екран на елегантан начин" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Видеоснимак екрана;рекордер;екран;видео;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Сними екран на интуитиван и једноставан начин беж сметњи." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha је једноставан сниматељ екрана са минималним интерфејсом. Можеш само " "притиснути дугме за снимање без постављања икаквих подешавања." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Главне функционалности у Kooha су:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Опште" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Отвори изборник" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Приказ пречица" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Изађи" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Снимање" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Покрени/заустави снимање" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Паузирај/настави снимање" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Подешавања" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Укључи/искључи микрофон" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Прикажи/сакриј курсор" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Главни изборник" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Сними монитор или прозор" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Сними подручје екрана" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Прикажи курсор" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Сними" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Заустави" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Паузирај снимање" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Снимам у…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Испирам…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Пречице на тастатури" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_О Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr " Душан Симић " #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "" #: src/application.rs:144 msgid "Show in Files" msgstr "" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Нема" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Изабери фасциклу за снимке" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "Паузирано" #: src/window/mod.rs:546 msgid "Normal" msgstr "Нормално" #: src/window/mod.rs:547 msgid "Selection" msgstr "Избор" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "_Cancel" #~ msgstr "_Откажи" #~ msgid "_Select" #~ msgstr "_Изабери" #~ msgid "Cannot access “{}”" #~ msgstr "Не могу да да пирступим “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Молим те одабери приступачну локацију и покушај поново." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Сними екран без муке." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Сними микрофон, звук са рачунара или оба у исто време." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Подршка за WebM, MP4, GIF, и MKV формате." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Избор више извора." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Опционо хардверски убрзано кодирање" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Одабери монитор или прозор који би да снимаш." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Изаберите простор за снимање одређеног подручја екрана." #, fuzzy #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Постави кашњење да бисте се припремили пре почетка снимања." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Прикажи или сакриј курсор." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Одабери место за чување снимка." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Користите пречице на тастатури." #~ msgid "Toggle Computer Sounds" #~ msgstr "Укључи/искључи звуке са рачунара" #~ msgid "_Delay" #~ msgstr "_Кашњење" #~ msgid "5 seconds" #~ msgstr "5 секунди" #~ msgid "10 seconds" #~ msgstr "10 секунди" #~ msgid "_Video Format" #~ msgstr "_Формат видеа" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Сачувај у…" #~ msgid "Record Computer Sounds" #~ msgstr "Сними звуке рачунара" #~ msgid "Record From Microphone" #~ msgstr "Сними микрофон" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Откажи кашњење" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Екран је снимљен!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Снимак је сачуван у “{}”" #~ msgid "Open File" #~ msgstr "Отвори датотеку" #~ msgid "Screencast Portal Request Error" #~ msgstr "Грешка код портала за снимање екрана" #~ msgid "Pipeline Build Error" #~ msgstr "Грешка код цевовода за изградњу" #~ msgid "Recording Error" #~ msgstr "Грешка приликом снимања" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Проверите све зависности за време извршавања It Doesn't Work страница." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Додатак GStreamer можда није инсталиран. Уколико јесте, пријави на Kooha-иној страници за " #~ "проблеме." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Побрини се да локација за чување постоји. Уколико постоји, нешто је пошло " #~ "наопако и молим те пријави на Kooha-иној страници за проблеме." SeaDve-Kooha-12ed227/po/sr@latin.po000066400000000000000000000351601505224011700170040ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # FIRST AUTHOR , YEAR. # Dušan Simić , 2021. # msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2021-10-15 15:44+0200\n" "Last-Translator: Dušan Simić \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" "X-Generator: Gtranslator 40.0\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Snimi ekran na elegantan način" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Videosnimak ekrana;rekorder;ekran;video;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "Snimi ekran na intuitivan i jednostavan način bež smetnji." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha je jednostavan snimatelj ekrana sa minimalnim interfejsom. Možeš samo " "pritisnuti dugme za snimanje bez postavljanja ikakvih podešavanja." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Glavne funkcionalnosti u Kooha su:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Opšte" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Otvori izbornik" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Prikaz prečica" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Izađi" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Snimanje" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Pokreni/zaustavi snimanje" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Pauziraj/nastavi snimanje" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Podešavanja" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Uključi/isključi mikrofon" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Prikaži/sakrij kursor" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Glavni izbornik" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Snimi monitor ili prozor" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Snimi područje ekrana" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Prikaži kursor" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Snimi" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Zaustavi" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Snimam u…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Ispiram…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Prečice na tastaturi" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_O Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr " Dušan Simić " #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "" #: src/application.rs:144 msgid "Show in Files" msgstr "" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Nema" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Izaberi fasciklu za snimke" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "Pauzirano" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normalno" #: src/window/mod.rs:547 msgid "Selection" msgstr "Izbor" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "_Cancel" #~ msgstr "_Otkaži" #~ msgid "_Select" #~ msgstr "_Izaberi" #~ msgid "Cannot access “{}”" #~ msgstr "Ne mogu da da pirstupim “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Molim te odaberi pristupačnu lokaciju i pokušaj ponovo." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Snimi ekran bez muke." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Snimi mikrofon, zvuk sa računara ili oba u isto vreme." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Podrška za WebM, MP4, GIF, i MKV formate." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Izbor više izvora." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Opciono hardverski ubrzano kodiranje" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Odaberi monitor ili prozor koji bi da snimaš." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Izaberite prostor za snimanje određenog područja ekrana." #, fuzzy #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Postavi kašnjenje da biste se pripremili pre početka snimanja." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Prikaži ili sakrij kursor." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Odaberi mesto za čuvanje snimka." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Koristite prečice na tastaturi." #~ msgid "Toggle Computer Sounds" #~ msgstr "Uključi/isključi zvuke sa računara" #~ msgid "_Delay" #~ msgstr "_Kašnjenje" #~ msgid "5 seconds" #~ msgstr "5 sekundi" #~ msgid "10 seconds" #~ msgstr "10 sekundi" #~ msgid "_Video Format" #~ msgstr "_Format videa" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Sačuvaj u…" #~ msgid "Record Computer Sounds" #~ msgstr "Snimi zvuke računara" #~ msgid "Record From Microphone" #~ msgstr "Snimi mikrofon" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Otkaži kašnjenje" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Ekran je snimljen!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Snimak je sačuvan u “{}”" #~ msgid "Open File" #~ msgstr "Otvori datoteku" #~ msgid "Screencast Portal Request Error" #~ msgstr "Greška kod portala za snimanje ekrana" #~ msgid "Pipeline Build Error" #~ msgstr "Greška kod cevovoda za izgradnju" #~ msgid "Recording Error" #~ msgstr "Greška prilikom snimanja" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Proverite sve zavisnosti za vreme izvršavanja It Doesn't Work stranica." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Dodatak GStreamer možda nije instaliran. Ukoliko jeste, prijavi na Kooha-inoj stranici za " #~ "probleme." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Pobrini se da lokacija za čuvanje postoji. Ukoliko postoji, nešto je " #~ "pošlo naopako i molim te prijavi na Kooha-inoj stranici za probleme." SeaDve-Kooha-12ed227/po/sv.po000066400000000000000000000531441505224011700156620ustar00rootroot00000000000000# Swedish translations for Kooha. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Åke Engelbrektson , 2021. # Luna Jernberg , 2021, 2022, 2023. # Kristoffer Grundström , 2021, 2024. # bittin1ddc447d824349b2 , 2023, 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-10-07 15:16+0000\n" "Last-Translator: bittin1ddc447d824349b2 \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.8-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Spela in din skärm på ett elegant sätt" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Skärmutsändning;Inspelare;Skärm;Video;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "Fånga din skärm på ett intuitivt och o-komplicerat sätt utan distraktioner." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha är en enkel skärminspelare med ett minimalistiskt gränssnitt. Du kan " "klicka på inspelningsknappen utan att behöva konfigurera en massa " "inställningar." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "De huvudsakliga funktionerna i Kooha inkluderar följande:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️Spela in mikrofon, skrivbordsljud eller båda samtidigt" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Stöd för WebM, MP4, GIF och Matroska format" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Välj en bildskärm eller en del av skärmen att spela in" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Konfigurerbar sparplats, pekarens synlighet, bildfrekvens och fördröjning" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Experimentell hårdvaruaccelererad avkodning" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Inspelningsalternativ och knapp för att starta inspelningen" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Pågående inspelningslängd och knapp för att stoppa inspelningen" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" "Nedräkning för att starta inspelning och knapp för att avbryta inspelning" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Välj område" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Avbryt" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Klart" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Återställ val" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Allmänt" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Fördröjning (sekunder)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Tidsintervall innan inspelningen börjar" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Inspelningsmapp" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Destinationsmapp för inspelningarna" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Format" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Bildhastighet" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Öppna meny" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Visa inställningar" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Visa genvägar" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Avsluta" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Spelar in" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Inspelning på/av" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Paus på/av" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Avbryt inspelningen" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Inställningar" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Växla skrivbordsljud" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Mikrofon på/av" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Muspekare på/av" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Huvudmeny" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Spela in en bildskärm eller ett fönster" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Spela in en del av skärmen" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Aktivera skrivbordsljud" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Inaktivera skrivbordsljud" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Aktivera mikrofon" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Inaktivera mikrofon" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Visa muspekare" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Dölj pekare" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Börja inspelning" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Spela in" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Glöm tidigare valda videokällor" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Sluta spela in" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Stopp" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Pausa inspelning" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Spelar in om…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Avbryt inspelning" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Rensar…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Inställningar" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Tangentbordsgenvägar" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Om Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Luna Jernberg" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Donera (köp mig en kaffe)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Översätt" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Screencast inspelad" #: src/application.rs:144 msgid "Show in Files" msgstr "Visa i Filer" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Misslyckades att hitta standardljudenheten" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Se till att du har PulseAudio installerat i ditt system." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time}timme" msgstr[1] "{time} timmar" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} minut" msgstr[1] "{time} minuter" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} sekund" msgstr[1] "{time} sekunder" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Misslyckades att ställa in inspelningsmapp" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "Denna bildhastighet kan orsaka prestandaproblem i det valda formatet." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Det här formatet är experimentellt och stöds inte." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Ingen" #: src/recording.rs:42 msgid "No active profile" msgstr "Ingen aktiv profil" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Misslyckades att starta inspelningen" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Kolla in {link} för hjälp." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "En GStreamer-plugin kanske inte är installerad." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Se till att sparplatsen finns och är tillgänglig." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Ett fel uppstod under inspelningen" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Misslyckades att öppna \"{path}\" för skrivning" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Välj inspelningsmapp" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Misslyckades att växla paus" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "En inspelning pågår för närvarande. Att avsluta omedelbart kan göra att " "inspelningen inte går att spela upp. Stoppa inspelningen innan du avslutar." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Om du avslutar avbryts behandlingen och kan göra att inspelningen inte kan " "spelas upp." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Avsluta programmet?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Kopiera till urklipp" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Kopierad till urklipp" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Visa detaljerat fel" #: src/window/mod.rs:289 msgid "Help" msgstr "Hjälp" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Ok, jag förstår" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Öppna inställningar?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Det tidigare valda formatet kan ha varit otillgängligt. Öppna " "inställningarna och välj ett format för att fortsätta inspelningen." #: src/window/mod.rs:308 msgid "Later" msgstr "Senare" #: src/window/mod.rs:310 msgid "Open" msgstr "Öppna" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "En inspelning pågår" #: src/window/mod.rs:509 msgid "Paused" msgstr "Pausad" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Markering" #~ msgid "Failed to start device monitor" #~ msgstr "Misslyckades att starta enhetsövervakning" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Misslyckades att ansluta till PulseAudio-demonen" #~ msgid "No microphone source found" #~ msgstr "Ingen mikrofonkälla hittades" #~ msgid "No desktop speaker source found" #~ msgstr "Ingen skrivbords högtalarkälla hittades" #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Denna bildhastighet kan orsaka prestandaproblem." #~ msgid "approx." #~ msgstr "cirka." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ Välj en skärm, fönster eller en del av skärmen för inspelning" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Val av flera källor" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Klicka här för att se videon." #~ msgid "Failed to select saving location" #~ msgstr "Misslyckades att välja plats för att spara" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Misslyckades att öppna fil för skrivning" #~ msgid "Donate (Liberapay)" #~ msgstr "Donera (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Donera (Paypal)" #~ msgid "Check out {} for help." #~ msgstr "Kolla in {} för hjälp." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Misslyckades att öppna \"{}\" för skrivning" #~ msgid "_Cancel" #~ msgstr "_Avbryt" #~ msgid "_Select" #~ msgstr "_Markera" #~ msgid "No folder selected" #~ msgstr "Ingen mapp vald" #~ msgid "Please choose a folder and try again." #~ msgstr "Välj en mapp och försök igen." #~ msgid "Cannot access “{}”" #~ msgstr "Kommer inte åt “{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Välj en tillgänglig plats och försök igen." #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Spela in skärmen utan krångel." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ Spela in din mikrofon, datorljud eller båda samtidigt." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Stöd för formaten WebM, MP4, GIF och MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Val av flera källor." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "Hårdvaruaccelererad kodning som tillval" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "Välj en skärm eller ett fönster att spela in." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "Skapa en markering för att spela in ett bestämt område på skärmen." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "" #~ "⏲️ Ställ in en fördröjning för att förbereda dig innan du börjar spela in." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Dölj eller visa muspekaren." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Välj en lagringsplats för inspelningen." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Använd användbara tangentbordsgenvägar." #~ msgid "Toggle Computer Sounds" #~ msgstr "Datorljud på/av" #~ msgid "_Delay" #~ msgstr "_Fördröjning" #~ msgid "5 seconds" #~ msgstr "5 sekunder" #~ msgid "10 seconds" #~ msgstr "10 sekunder" #~ msgid "_Video Format" #~ msgstr "_Videoformat" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Spara till…" #~ msgid "Record Computer Sounds" #~ msgstr "Spela in datorljud" #~ msgid "Record From Microphone" #~ msgstr "Spela in från mikrofon" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Avbryt fördröjning" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Skärmvisning inspelad!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Inspelningen har sparats i “{}”" #~ msgid "Open File" #~ msgstr "Öppna fil" #~ msgid "Pipeline Build Error" #~ msgstr "Pipeline byggfel" #~ msgid "Recording Error" #~ msgstr "Inspelningsfel" #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "" #~ "Spela in skärmen på ett enkelt och smärtfritt sätt utan distraktion." #~ msgid "" #~ "Make sure to check for the runtime dependencies and \"It Doesn't Work\" " #~ "page in Kooha's readme page. ({})" #~ msgstr "" #~ "Kolla körtidsberoenden och sidan \"It Doesn't Work\" på Koohas ReadMe-" #~ "sida. ({})" #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's " #~ "issue page. ({})" #~ msgstr "" #~ "Ett GStreamer-instick kanske inte är installerat. Om inte, rapportera på " #~ "Koohas ärendesida. ({})" #~ msgid "Screencast Portal Request Failed" #~ msgstr "Begäran om skärmsändningsportal misslyckades" #~ msgid "Recording Failed" #~ msgstr "Inspelning misslyckades" #~ msgid "Pipeline Build Failed" #~ msgstr "Pipeline-bygget misslyckades" #~ msgid "Sorry! An error has occurred." #~ msgstr "Tyvärr! Ett fel har inträffat." #~ msgid "Please choose an accessible location and retry." #~ msgstr "Välj en åtkomlig plats och försök igen." #~ msgid "The recording has been saved in {}" #~ msgstr "Inspelningen har sparats i {}" #~ msgid "Select a Folder" #~ msgstr "Välj en mapp" #~ msgid "Inaccessible location '{}'" #~ msgstr "Platsen ej åtkomlig \"{}\"" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Välj ett område på skärmen för inspelning." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Stöd för de fria formaten Matroska och WebM." #~ msgid "Open menu" #~ msgstr "Öppna menyn" #~ msgid "Show keyboard shortcuts" #~ msgstr "Visa tangentbordsgenvägar" #~ msgid "Toggle record" #~ msgstr "Inspelning på/av" #~ msgid "Toggle record pause" #~ msgstr "Inspelningspaus på/av" #~ msgid "Cancel delay" #~ msgstr "Avbryt fördröjning" #~ msgid "Toggle computer sounds" #~ msgstr "Datorljud på/av" #~ msgid "Toggle microphone" #~ msgstr "Mikrofonljud på/av" #~ msgid "Toggle pointer" #~ msgstr "Visa/Dölj muspekare" #~ msgid "Delay" #~ msgstr "Fördröjning" #~ msgid "Video Format" #~ msgstr "Videoformat" #~ msgid "Save to…" #~ msgstr "Spara till…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Tangenbordsgenvägar" #~ msgid "About Kooha" #~ msgstr "Om Kooha" #~ msgid "Sorry! An error has occured." #~ msgstr "Ett fel har uppstått." #~ msgid "Videos" #~ msgstr "Videor" #~ msgid "Failed to create session." #~ msgstr "Kunde inte skapa session." #~ msgid "Failed to select sources." #~ msgstr "Kunde inte välja källor." #~ msgid "Select" #~ msgstr "Välj" #~ msgid "Inaccessible location “{directory}”" #~ msgstr "Oåtkomlig plats “{directory}”" #~ msgid "The recording has been saved in {saving_location}" #~ msgstr "Inspelningen har sparats i {saving_location}" #~ msgid "Inaccessible location '{directory}'" #~ msgstr "Oåtkomlig plats \"{directory}\"" #~ msgid "Toggle capture mode" #~ msgstr "Växla inhämtningsläge" #~ msgid "Full Screen" #~ msgstr "Helskärm" #~ msgid "Processing" #~ msgstr "Bearbetar" #~ msgid "Save location not set" #~ msgstr "Lagringsplats ej angiven" #~ msgid "Recording cannot start" #~ msgstr "Inspelning kan inte starta" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "Lagringsplatsen du har valt kanske har tagits bort." #~ msgid "The recording has been saved in" #~ msgstr "Inspelningen har sparats i" #~ msgid "Record computer sounds" #~ msgstr "Spela in datorljud" #~ msgid "Record from microphone" #~ msgstr "Spela in från mikrofon" #~ msgid "Show pointer" #~ msgstr "Visa muspekare" #~ msgid "Simple screen recorder" #~ msgstr "Enkel skärminspelare" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Kooha är en enkel skärminspelare byggd med GTK. Den låter dig spela in " #~ "vad som sker på din skärm och även ljudet från din mikrofon eller " #~ "skrivbordet." SeaDve-Kooha-12ed227/po/ta.po000066400000000000000000000641371505224011700156420ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # K.B.Dharun Krishna , 2022. # "K.B.Dharun Krishna" , 2023, 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-04-17 10:50+0000\n" "Last-Translator: \"K.B.Dharun Krishna\" \n" "Language-Team: Tamil \n" "Language: ta\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.5-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "கூஹா" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "உங்கள் திரையை நேர்த்தியாக பதிவு செய்யவும்" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "ஸ்கிரீன்காஸ்ட்;ரெக்கார்டர்;திரை;வீடியோ;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "கவனச்சிதறல்கள் இல்லாமல் உங்கள் திரையை உள்ளுணர்வு மற்றும் நேரடியான வழியில் படம்பிடிக்கவும்." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "கூஹா என்பது குறைந்தபட்ச இடைமுகத்துடன் கூடிய எளிய ஸ்கிரீன் ரெக்கார்டர் ஆகும். நீங்கள் பல " "அமைப்புகளை உள்ளமைக்காமல் பதிவு பொத்தானைக் கிளிக் செய்யலாம்." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "கூஹாவின் முக்கிய அம்சங்கள் பின்வருவனவற்றை உள்ளடக்குகின்றன:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ மைக்ரோஃபோன், டெஸ்க்டாப் ஆடியோ அல்லது இரண்டையும் ஒரே நேரத்தில் பதிவு செய்யவும்" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 WebM, MP4, GIF மற்றும் Matroska வடிவங்களுக்கான ஆதரவு" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ பதிவு செய்ய மானிட்டரையோ அல்லது திரையின் ஒரு பகுதியையோ தேர்ந்தெடுக்கவும்" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "🛠️ உள்ளமைக்கக்கூடிய சேமிப்பு இடம், சுட்டித் தெரிவுநிலை, பிரேம் வீதம் மற்றும் தாமதம்" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 பரிசோதனை வன்பொருள் முடுக்கப்பட்ட குறியாக்கம்" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "பகுதியைத் தேர்ந்தெடுக்கவும்" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "ரத்துசெய்" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "முடிந்தது" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "தேர்வை மீட்டமைக்கவும்" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "பொது" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "தாமதம் (வினாடிகள்)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "பதிவு தொடங்கும் முன் நேர இடைவெளி" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "பதிவுகள் கோப்புறை" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "பதிவுகளுக்கான இலக்கு கோப்புறை" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "காணொளி" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "வடிவம்" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "பிரேம் வீதம்" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "மெனுவை திறக்கவும்" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "விருப்பங்களைக் காட்டு" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "குறுக்குவழிகளைக் காட்டு" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "வெளியேறு" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "ஒலியை பதிவு செய்கிறது" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "பதிவை நிலைமாற்றவும்" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "இடைநிறுத்தத்தை நிலைமாற்று" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "பதிவை ரத்துசெய்" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "செட்டிங்ஸ்" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "டெஸ்க்டாப் ஆடியோவை நிலைமாற்று" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "ஒலிவாங்கியை நிலைமாற்று" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "சுட்டியை நிலைமாற்றவும்" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "முதன்மை பட்டியல்" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "ஒரு மானிட்டர் அல்லது விண்டோவைப் பிடிக்கவும்" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "திரையின் தேர்வைப் பிடிக்கவும்" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "டெஸ்க்டாப் ஆடியோவை இயக்கு" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "டெஸ்க்டாப் ஆடியோவை முடக்கு" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "ஒலிவாங்கியை இயக்கு" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "ஒலிவாங்கியை முடக்கு" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "சுட்டியைக் காட்டு" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "சுட்டியை மறை" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "பதிவைத் தொடங்கவும்" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "ஒலிப்பதிவு" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "முன்பு தேர்ந்தெடுத்த வீடியோ ஆதாரங்களை மறந்து விடுங்கள்" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "பதிவு செய்வதை நிறுத்து" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "நிறுத்து" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "பதிவு செய்வதை இடைநிறுத்தவும்" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "இதில் பதிவு செய்கிறது…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "ரெக்கார்டிங்கை ரத்து செய்" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "ஃப்ளஷிங்…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_விருப்பங்கள்" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_விசைப்பலகை குறுக்குவழிகள்" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_கூஹா பற்றி" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "தருண் கிருஷ்ணா.க.பா" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "நன்கொடை (எனக்கு ஒரு காபி வாங்கிக் கொடு)" #: src/about.rs:48 msgid "GitHub" msgstr "கிட்ஹப்" #: src/about.rs:50 msgid "Translate" msgstr "மொழிபெயர்" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "ஸ்கிரீன்காஸ்ட் பதிவு செய்யப்பட்டது" #: src/application.rs:144 msgid "Show in Files" msgstr "கோப்புகளில் காட்டு" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "இயல்பு ஆடியோ சாதனத்தைக் கண்டறிய முடியவில்லை" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "பல்ஸ்ஆடியோ உங்கள் கணினியில் நிறுவப்பட்டுள்ளதா என்பதை உறுதிப்படுத்தவும்." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} மணி" msgstr[1] "{time} hours" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} நிமிடம்" msgstr[1] "{time} நிமிடங்கள்" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} வினாடி" msgstr[1] "{time} வினாடிகள்" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "ரெக்கார்டிங் கோப்புறையை அமைப்பதில் தோல்வி" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "இந்த பிரேம் வீதம் தேர்ந்தெடுக்கப்பட்ட வடிவமைப்பில் செயல்திறன் சிக்கல்களை ஏற்படுத்தலாம்." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "இந்த வடிவம் சோதனைக்குரியது மற்றும் ஆதரிக்கப்படாது." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "எதுவும் இல்லை" #: src/recording.rs:42 msgid "No active profile" msgstr "செயலில் சுயவிவரம் இல்லை" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "பதிவைத் தொடங்குவதில் தோல்வி" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "உதவிக்கு {link} ஐப் பார்க்கவும்." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "GStreamer செருகுநிரல் நிறுவப்படாமல் இருக்கலாம்." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "சேமிக்கும் இடம் உள்ளதா மற்றும் அணுகக்கூடியதா என்பதை உறுதிப்படுத்தவும்." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "பதிவு செய்யும் போது பிழை ஏற்பட்டது" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "எழுதுவதற்கு “{path}” திறக்க முடியவில்லை" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "பதிவுகள் கோப்புறையைத் தேர்ந்தெடுக்கவும்" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "இடைநிறுத்தத்தை மாற்றுவதில் தோல்வி" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "தற்போது ஒரு பதிவு நடந்து கொண்டிருக்கிறது. உடனடியாக வெளியேறுவது ரெக்கார்டிங்கை இயக்க " "முடியாமல் போகலாம். வெளியேறும் முன் பதிவை நிறுத்தவும்." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "வெளியேறுவது செயலாக்கத்தை ரத்து செய்து, ரெக்கார்டிங்கை இயக்க முடியாமல் போகலாம்." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "பயன்பாட்டிலிருந்து வெளியேறவா?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "கிளிப்போர்டுக்கு நகலெடுக்கவும்" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "விரிவான பிழையைக் காட்டு" #: src/window/mod.rs:289 msgid "Help" msgstr "உதவி" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "சரி, புரிந்தது" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "விருப்பத்தேர்வுகளை திறக்கவா?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "முன்பு தேர்ந்தெடுக்கப்பட்ட வடிவம் கிடைக்காமல் இருக்கலாம். பதிவுகளைத் தொடர " "விருப்பத்தேர்வுகளைத் திறந்து வடிவமைப்பைத் தேர்ந்தெடுக்கவும்." #: src/window/mod.rs:308 msgid "Later" msgstr "பின்னர்" #: src/window/mod.rs:310 msgid "Open" msgstr "திறக்கவும்" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "ஒரு பதிவு நடந்து கொண்டிருக்கிறது" #: src/window/mod.rs:509 msgid "Paused" msgstr "இடைநிறுத்தப்பட்டது" #: src/window/mod.rs:546 msgid "Normal" msgstr "இயல்பானது" #: src/window/mod.rs:547 msgid "Selection" msgstr "தேர்வு" #~ msgid "Failed to start device monitor" #~ msgstr "சாதன மானிட்டரைத் தொடங்குவதில் தோல்வி" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "பல்ஸ்ஆடியோ டீமானுடன் இணைக்க முடியவில்லை" #~ msgid "No microphone source found" #~ msgstr "மைக்ரோஃபோன் ஆதாரம் எதுவும் கிடைக்கவில்லை" #~ msgid "No desktop speaker source found" #~ msgstr "டெஸ்க்டாப் ஸ்பீக்கர் ஆதாரம் இல்லை" #~ msgid "Ok" #~ msgstr "சரி" #~ msgid "This frame rate may cause performance issues." #~ msgstr "இந்த பிரேம் வீதம் செயல்திறன் சிக்கல்களை ஏற்படுத்தலாம்." #~ msgid "approx." #~ msgstr "தோராயமாக." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "" #~ "🖥️ பதிவு செய்ய மானிட்டர், சாளரம் அல்லது திரையின் ஒரு பகுதியைத் தேர்ந்தெடுக்கவும்" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 பல மூலங்களின் தேர்வு" #~ msgid "Dave Patrick Caberto" #~ msgstr "டேவ் பேட்ரிக் கேபர்டோ" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 டேவ் பேட்ரிக் கேபர்டோ" #~ msgid "Click here to view the video." #~ msgstr "வீடியோவைப் பார்க்க இங்கே கிளிக் செய்யவும்." #~ msgid "Failed to select saving location" #~ msgstr "சேமிக்கும் இடத்தைத் தேர்ந்தெடுக்க முடியவில்லை" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "வெப்எம்" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "மெட்ரோஸ்கா" #~ msgid "WebM VP9" #~ msgstr "வெப்எம் விபி9" #~ msgid "WebM AV1" #~ msgstr "வெப்எம் ஏவி 1" #~ msgid "WebM VAAPI VP8" #~ msgstr "வெப்எம் VAAPI விபி8" #~ msgid "WebM VAAPI VP9" #~ msgstr "வெப்எம் VAAPI விபி9" #~ msgid "WebM VAAPI H264" #~ msgstr "வெப்எம் VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "எழுதுவதற்கான கோப்பைத் திறக்க முடியவில்லை" #~ msgid "Donate (Liberapay)" #~ msgstr "நன்கொடை (லிபராபே)" #~ msgid "Donate (PayPal)" #~ msgstr "நன்கொடை (பேபால்)" #~ msgid "Check out {} for help." #~ msgstr "உதவிக்கு {}ஐப் பார்க்கவும்." #~ msgid "Failed to open “{}” for writing" #~ msgstr "எழுதுவதற்கு “{}” திறக்க முடியவில்லை" #~ msgid "_Cancel" #~ msgstr "_ரத்துசெய்" #~ msgid "_Select" #~ msgstr "_தேர்ந்தெடு" #~ msgid "No folder selected" #~ msgstr "கோப்புறை எதுவும் தேர்ந்தெடுக்கப்படவில்லை" #~ msgid "Please choose a folder and try again." #~ msgstr "கோப்புறையைத் தேர்ந்தெடுத்து மீண்டும் முயற்சிக்கவும்." #~ msgid "Cannot access “{}”" #~ msgstr "“{}” ஐ அணுக முடியவில்லை" #~ msgid "Please choose an accessible location and try again." #~ msgstr "அணுகக்கூடிய இடத்தைத் தேர்ந்தெடுத்து மீண்டும் முயற்சிக்கவும்." #~ msgid "Enable Desktop Sounds" #~ msgstr "டெஸ்க்டாப் ஒலிகளை இயக்கு" #~ msgid "Disable Desktop Sounds" #~ msgstr "டெஸ்க்டாப் ஒலிகளை முடக்கு" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 எந்த தொந்தரவும் இல்லாமல் உங்கள் திரையைப் பிடிக்கவும்." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ உங்கள் ஒலிவாங்கி, கணினி ஒலிகள் அல்லது இரண்டையும் ஒரே நேரத்தில் பதிவு செய்யவும்." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 WebM, MP4, GIF மற்றும் MKV வடிவங்களுக்கான ஆதரவு." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 பல ஆதாரங்களின் தேர்வு." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 விருப்ப வன்பொருள் முடுக்கப்பட்ட குறியாக்கம்" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ பதிவு செய்ய மானிட்டர் அல்லது சாளரத்தைத் தேர்ந்தெடுக்கவும்." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "" #~ "🖼️ உங்கள் திரையில் இருந்து குறிப்பிட்ட பகுதியைப் பிடிக்க ஒரு தேர்வை உருவாக்கவும்." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ ரெக்கார்டிங்கைத் தொடங்கும் முன் தயார் செய்ய தாமதத்தை அமைக்கவும்." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ மவுஸ் பாயிண்டரை மறைக்கவும் அல்லது காட்டவும்." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 உங்கள் பதிவுக்காக சேமிக்கும் இடத்தை தேர்வு செய்யவும்." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ உதவிகரமான விசைப்பலகை குறுக்குவழிகளைப் பயன்படுத்தவும்." #~ msgid "Toggle Computer Sounds" #~ msgstr "கணினி ஒலிகளை நிலைமாற்று" #~ msgid "_Delay" #~ msgstr "_தாமதம்" #~ msgid "3 seconds" #~ msgstr "3 வினாடிகள்" #~ msgid "5 seconds" #~ msgstr "5 வினாடிகள்" #~ msgid "10 seconds" #~ msgstr "10 வினாடிகள்" #~ msgid "_Video Format" #~ msgstr "_வீடியோ வடிவம்" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_இதில் சேமிக்கவும்…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "GStreamer செருகுநிரல் நிறுவப்படாமல் இருக்கலாம். அது நிறுவப்பட்டும், இன்னும் சரியாக " #~ "வேலை செய்யவில்லை என்றால், தயவுசெய்து Kooha இன் வெளியீட்டுப் பக்கத்திற்கு புகாரளிக்கவும்." SeaDve-Kooha-12ed227/po/tr.po000066400000000000000000000601521505224011700156540ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Oğuz Ersen , 2021, 2022. # ToldYouThat , 2021. # Sabri Ünal , 2022, 2023, 2024. # Oğuz Ersen , 2022, 2024. # Sabri Ünal , 2024. msgid "" msgstr "" "Project-Id-Version: Kooha Ekran Kayıt\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-09-27 12:16+0000\n" "Last-Translator: Oğuz Ersen \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=2; plural=n != 1;\n" "X-Generator: Weblate 5.8-dev\n" "X-Poedit-SourceCharset: UTF-8\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Ekranınızı zarif bir şekilde kaydedin" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Recorder;Screen;Video;Ekran kaydı;Kaydedici;Ekran;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "Dikkatiniz dağılmadan ekranınızı sezgisel ve basit bir şekilde kaydedin." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha, sade bir arayüze sahip basit bir ekran kaydedicidir. Bir dizi ayarı " "yapılandırmanıza gerek kalmadan sadece kayıt düğmesine tıklayabilirsiniz." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Kooha'nın temel özellikleri şunlardır:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Mikrofon, masaüstü sesi veya her ikisini aynı anda kaydedin" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 WebM, MP4, GIF ve Matroska biçimleri desteği" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Kaydetmek için bir ekran veya ekranın bir bölümünü seçin" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Yapılandırılabilir kaydetme konumu, işaretçi görünürlüğü, kare hızı ve " "gecikme" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Deneysel donanım hızlandırmalı kodlama" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Kayıt seçenekleri ve kaydı başlatma düğmesi" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Devam eden kayıt süresi ve kaydı durdurma düğmesi" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "Kaydı başlatmak için geri sayım ve kaydı iptal etme düğmesi" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Alan Seç" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "İptal" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Bitti" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Seçimi Sıfırla" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Genel" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Gecikme (Saniye)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Kayıt başlamadan önceki zaman aralığı" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Kayıtlar Klasörü" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Kayıtlar için hedef klasör" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Video" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Biçim" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Kare Hızı" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Menüyü Aç" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Tercihleri Göster" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Kısayolları Göster" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Çıkış" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Kaydediliyor" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Kaydı Aç/Kapat" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Duraklatmayı Aç/Kapat" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Kaydı İptal Et" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Ayarlar" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Masaüstü Sesini Aç/Kapat" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Mikrofonu Aç/Kapat" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "İşaretçiyi Aç/Kapat" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Ana Menü" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Ekran ya da Pencere Yakala" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Bir Ekranın Seçilmiş Kısmını Yakala" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Masaüstü Sesini Etkinleştir" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Masaüstü Sesini Devre Dışı Bırak" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Mikrofonu Etkinleştir" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Mikrofonu Devre Dışı Bırak" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "İşaretçiyi Göster" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "İşaretçiyi Gizle" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Kayıt Başlat" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Kayıt" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Önceden Seçilen Video Kaynaklarını Unut" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Kaydı Durdur" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Durdur" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Kaydı Duraklat" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Kaydediliyor…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Kaydı İptal Et" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Temizleniyor…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Tercihler" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Klavye Kısayolları" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "Kooha _Hakkında" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Sabri Ünal (yakushabb@gmail.com), Oğuz Ersen" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Bağış Yap (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Çevir" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Ekran kaydı kaydedildi" #: src/application.rs:144 msgid "Show in Files" msgstr "Dosyalarʼda Göster" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Öntanımlı ses aygıtı bulunamadı" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Sisteminizde PulseAudio'nun kurulu olduğundan emin olun." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} saat" msgstr[1] "{time} saat" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} dakika" msgstr[1] "{time} dakika" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} saniye" msgstr[1] "{time} saniye" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Kayıt klasörü ayarlanamadı" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "Bu kare hızı, seçilen biçimde performans sorunlarına neden olabilir." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Bu biçim deneysel ve desteklenmemektedir." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Yok" #: src/recording.rs:42 msgid "No active profile" msgstr "Etkin profil yok" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Kayıt başlatılamadı" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Yardım için {link} bağlantısına bakınız." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Bir GStreamer eklentisi kurulmamış olabilir." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Kaydetme konumunun var ve erişilebilir olduğundan emin olun." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Kayıt sırasında bir hata oluştu" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "“{path}” yolu yazma için açılamadı" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Kayıtlar Klasörünü Seç" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Duraklatma değiştirilemedi" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Şu anda bir kayıt devam ediyor. Hemen çıkmak kaydın oynatılamamasına neden " "olabilir. Lütfen çıkmadan önce kaydı durdurun." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Çıkmak işlemi iptal edecek ve kaydın oynatılamaz hale gelmesine neden " "olabilecektir." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Uygulamadan çıkılsın mı?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Panoya kopyala" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Panoya kopyalandı" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Ayrıntılı hata göster" #: src/window/mod.rs:289 msgid "Help" msgstr "Yardım" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Anladım" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Tercihler Açılsın Mı?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Önceki seçilen biçim kullanılamıyor olabilir. Kayda devam etmek için " "tercihleri açın ve bir biçim seçin." #: src/window/mod.rs:308 msgid "Later" msgstr "Daha sonra" #: src/window/mod.rs:310 msgid "Open" msgstr "Aç" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Bir kayıt devam ediyor" #: src/window/mod.rs:509 msgid "Paused" msgstr "Duraklatıldı" #: src/window/mod.rs:546 msgid "Normal" msgstr "Normal" #: src/window/mod.rs:547 msgid "Selection" msgstr "Seçim" #~ msgid "Failed to start device monitor" #~ msgstr "Aygıt monitörü başlatılamadı" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "PulseAudio programına bağlanılamadı" #~ msgid "No microphone source found" #~ msgstr "Mikrofon kaynağı bulunamadı" #~ msgid "No desktop speaker source found" #~ msgstr "Masaüstü hoparlör kaynağı bulunamadı" #~ msgid "Ok" #~ msgstr "Tamam" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Bu kare hızı performans sorunlarına neden olabilir." #~ msgid "approx." #~ msgstr "yaklaşık" #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ Kaydetmek için bir ekran, pencere veya ekranın bir bölümünü seçin" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Çoklu kaynak seçimi" #~ msgid "No Profile" #~ msgstr "Profil Yok" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Videoyu görüntülemek için tıklayınız." #~ msgid "Failed to select saving location" #~ msgstr "Kaydetme konumu seçilemedi" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Dosya yazma için açılamadı" #~ msgid "Failed to select folder" #~ msgstr "Klasör seçilemedi" #~ msgid "Donate (Liberapay)" #~ msgstr "Bağış Yap (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Bağış Yap (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Yardım için {} adresine göz atın." #~ msgid "Failed to open “{}” for writing" #~ msgstr "\"{}\" yazma için açılamadı" #~ msgid "_Cancel" #~ msgstr "_İptal" #~ msgid "_Select" #~ msgstr "_Seç" #~ msgid "No folder selected" #~ msgstr "Klasör seçilmedi" #~ msgid "Please choose a folder and try again." #~ msgstr "Lütfen bir klasör seçin ve tekrar deneyin." #~ msgid "Cannot access “{}”" #~ msgstr "“{}” dizinine erişilemiyor" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Lütfen erişilebilir bir konum seçin ve tekrar deneyin." #~ msgid "Enable Desktop Sounds" #~ msgstr "Masaüstü Seslerini Etkinleştir" #~ msgid "Disable Desktop Sounds" #~ msgstr "Masaüstü Seslerini Devre Dışı Bırak" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Herhangi bir güçlük çekmeden ekranınızı kaydedin." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Mikrofonunuzu, bilgisayar seslerini veya her ikisini aynı anda kaydedin." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 WebM, MP4, GIF ve MKV biçimleri desteği." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Çoklu kaynak seçimi." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 İsteğe bağlı donanım hızlandırmalı kodlama" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Kaydetmek için bir ekran veya pencere seçin." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "" #~ "🖼️ Ekranınızdan belirli bir alanı yakalamak için bir seçim oluşturun." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Kayda başlamadan önce hazırlanmak için bir gecikme ayarlayın." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Fare işaretçisini gizleyin veya gösterin." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Kaydınız için bir kaydetme konumu seçin." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Kullanışlı klavye kısayollarını kullanın." #~ msgid "Toggle Computer Sounds" #~ msgstr "Bilgisayar Seslerini Aç/Kapat" #~ msgid "_Delay" #~ msgstr "_Gecikme" #~ msgid "3 seconds" #~ msgstr "3 saniye" #~ msgid "5 seconds" #~ msgstr "5 saniye" #~ msgid "10 seconds" #~ msgstr "10 saniye" #~ msgid "_Video Format" #~ msgstr "_Video Biçimi" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "Şuraya _kaydet…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Bir GStreamer eklentisi kurulmamış olabilir. Kuruluysa ancak yine de " #~ "düzgün çalışmıyorsa lütfen Kooha'nın sorun sayfasına bildirin." #~ msgid "Record Computer Sounds" #~ msgstr "Bilgisayar Seslerini Kaydet" #~ msgid "Record From Microphone" #~ msgstr "Mikrofondan Kaydet" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "Gecikmeyi İptal Et" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Telif hakkı 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "Ekran Kaydı Kaydedildi!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Kayıt “{}” konumuna kaydedildi" #~ msgid "Open File" #~ msgstr "Dosyayı Aç" #~ msgid "Screencast Portal Request Error" #~ msgstr "Ekran Kaydı Portal İstek Hatası" #~ msgid "Pipeline Build Error" #~ msgstr "İş Hattı Oluşturma Hatası" #~ msgid "Recording Error" #~ msgstr "Kaydetme Hatası" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Çalışma zamanı bağımlılıklarını ve Çalışmıyor sayfasını gözden geçirdiğinizden " #~ "emin olun." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Kaydetme konumunun var olduğundan veya erişilebilir olduğundan emin olun. " #~ "Gerçekten varsa veya erişilebilir durumdaysa, bir şeyler ters gitmiştir " #~ "ve lütfen bunu Kooha'nın sorun sayfasında bildirin." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Kaydetme konumunun var olduğundan emin olun. Gerçekten varsa, bir şeyler " #~ "ters gitmiştir ve lütfen bunu Kooha'nın sorun sayfasına bildirin." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Bir GStreamer eklentisi kurulmamış olabilir. Değilse, lütfen Kooha'nın sorun " #~ "sayfasına bildirin." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Kaydetme konumunun var olduğundan emin olun. Değilse, bir şeyler ters " #~ "gitmiştir ve lütfen bunu Kooha'nın sorun sayfasına bildirin." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "" #~ "Dikkatiniz dağılmadan ekranınızı basit ve acısız bir şekilde kaydedin." #~ msgid "Sorry! An error has occurred." #~ msgstr "Üzgünüm! Bir hata oluştu." #~ msgid "Please choose an accessible location and retry." #~ msgstr "Lütfen erişilebilir bir yer seçin ve tekrar deneyin." #~ msgid "Select a Folder" #~ msgstr "Klasör Seç" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Kaydetmek için ekranınızın bir alanını seçin." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Özgür Matroska ve WebM biçimleri için destek." #~ msgid "Open menu" #~ msgstr "Menüyü aç" #~ msgid "Show keyboard shortcuts" #~ msgstr "Klavye kısayollarını göster" #~ msgid "Toggle record" #~ msgstr "Kaydı aç/kapat" #~ msgid "Toggle record pause" #~ msgstr "Kayıt duraklatmayı aç/kapat" #~ msgid "Cancel delay" #~ msgstr "Gecikmeyi iptal et" #~ msgid "Toggle computer sounds" #~ msgstr "Bilgisayar seslerini değiştir" #~ msgid "Toggle microphone" #~ msgstr "Mikrofonu değiştir" #~ msgid "Toggle pointer" #~ msgstr "İşaretçiyi değiştir" #~ msgid "Delay" #~ msgstr "Gecikme" #~ msgid "Video Format" #~ msgstr "Video Biçimi" #~ msgid "Save to…" #~ msgstr "Kaydetme yeri…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Klavye Kısayolları" #~ msgid "About Kooha" #~ msgstr "Kooha Hakkında" #~ msgid "Sorry! An error has occured." #~ msgstr "Afedersiniz! Bir hata oluştu." #~ msgid "Videos" #~ msgstr "Videolar" #~ msgid "Failed to create session." #~ msgstr "Oturum oluşturulamadı." #~ msgid "Failed to select sources." #~ msgstr "Kaynaklar seçilemedi." #~ msgid "Select" #~ msgstr "Seç" #~ msgid "Inaccessible location “{directory}”" #~ msgstr "Erişilemeyen konum \"{directory}\"" #~ msgid "The recording has been saved in {saving_location}" #~ msgstr "Kayıt {saving_location} yerinin içine kaydedildi" #~ msgid "Toggle capture mode" #~ msgstr "Yakalama modunu değiştir" #~ msgid "Full Screen" #~ msgstr "Tam Ekran" #~ msgid "Processing" #~ msgstr "İşleniyor" #~ msgid "Save location not set" #~ msgstr "Kaydetme konumu ayarlanmadı" #~ msgid "Recording cannot start" #~ msgstr "Kayıt başlayamıyor" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "Seçtiğiniz kaydetme yeri silinmiş olabilir." #~ msgid "The recording has been saved in" #~ msgstr "Kayıt kaydedildi" #~ msgid "Record computer sounds" #~ msgstr "Bilgisayar seslerini kaydet" #~ msgid "Record from microphone" #~ msgstr "Mikrofondan kaydet" #~ msgid "Show pointer" #~ msgstr "İşaretçiyi göster" #~ msgid "Elegantly record your screen " #~ msgstr "Ekranınızı zarif bir şekilde kaydedin " #~ msgid "🎥 Capture your screen without any hustle." #~ msgstr "🎥 Herhangi bir uğraştırma olmadan ekranınızı yakalayın." #~ msgid "Simple screen recorder" #~ msgstr "Basit bir ekran kaydedici" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Kooha, GTK ile oluşturulmuş basit bir ekran kaydedicidir. Ekranınızı ve " #~ "ayrıca mikrofonunuzdan veya masaüstünüzden ses kaydetmenize olanak tanır." SeaDve-Kooha-12ed227/po/uk.po000066400000000000000000000672721505224011700156600ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Mykola , 2021. # Ihor Hordiichuk , 2021, 2022, 2023, 2024. # Сергій , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-10-08 07:55+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.8-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "Елегантно записуйте ваш екран" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Записувач;Екран;Відео;Screencast;Recorder;Screen;Video;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "" "Вибирайте ділянку інтуїтивно зрозумілим і простим способом без зайвих " "чинників." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha — це простий записувач екрана з мінімалістичним інтерфейсом. Ви можете " "просто натиснути кнопку запису без витрачання часу на налаштування." #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Основні можливості Kooha:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ Запис з мікрофона, звуків комп'ютера або з обох одночасно" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 Підтримка форматів WebM, MP4, GIF і Matroska" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️ Виберіть монітор або ділянку екрана для запису" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "" "🛠️ Налаштовуване розташування для збереження, видимість вказівника, частота " "кадрів і затримка" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 Експериментальне кодування з апаратним прискоренням" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "Параметри запису та кнопка початку запису" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "Тривалість поточного запису та кнопка зупинки запису" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "Зворотний відлік для початку запису та кнопка для скасування запису" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "Вибрати ділянку" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "Скасувати" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "Готово" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "Скинути вибір" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "Загальні" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "Затримка (секунди)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "Інтервал часу перед початком запису" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "Тека записів" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "Тека для зберігання записів" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "Відео" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "Формат" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "Частота кадрів" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "Відкрити меню" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "Показати налаштування" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "Показати комбінації клавіш" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "Вийти" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "Запис" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "Почати/зупинити запис" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "Зупинити/продовжити" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "Скасувати запис" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "Налаштування" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "Перемкнути звук комп'ютера" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "Увімкнути/вимкнути мікрофон" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "Показати/сховати вказівник" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "Головне меню" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "Захоплення монітора або вікна" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "Захоплення ділянки екрана" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "Увімкнути звук з комп'ютера" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "Вимкнути звук з комп'ютера" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "Увімкнути мікрофон" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "Вимкнути мікрофон" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "Показати вказівник" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "Сховати вказівник" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "Розпочати запис" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "Записати" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "Забути раніше вибрані джерела відео" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "Зупинити запис" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "Зупинити" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "Призупинити запис" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "Запис через…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "Скасувати запис" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "Очищення…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "_Налаштування" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "_Сполучення клавіш" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "_Про Kooha" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Ihor Hordiichuk, Serhii Honcharuk" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "Підтримати (Buy Me a Coffee)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "Перекласти" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "Скрінкаст записаний" #: src/application.rs:144 msgid "Show in Files" msgstr "Показати у Файлах" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "Не вдалося знайти усталений аудіопристрій" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "Переконайтеся, що у вашій системі встановлено PulseAudio." #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} година" msgstr[1] "{time} години" msgstr[2] "{time} годин" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} хвилина" msgstr[1] "{time} хвилини" msgstr[2] "{time} хвилин" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} секунда" msgstr[1] "{time} секунди" msgstr[2] "{time} секунд" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "Не вдалося встановити теку для записів" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" "Така частота кадрів може спричинити проблеми зі швидкодією у вибраному " "форматі." #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "Цей формат експериментальний і не підтримується." #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "Немає" #: src/recording.rs:42 msgid "No active profile" msgstr "Немає активного профілю" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "Не вдалося розпочати запис" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "Довідка: {link}." #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "Плагін GStreamer може бути не встановлений." #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "Переконайтеся, що місце збереження існує та доступне." #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "Сталася помилка під час запису" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "Не вдалося відкрити “{path}” для запису" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "Вибрати теку для записів" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "Не вдалося перемкнути паузу" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "Наразі триває запис. Негайний вихід може призвести до неможливості " "відтворення запису. Зупиніть запис перед виходом." #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" "Вихід скасує обробку і може призвести до неможливості відтворення запису." #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "Вийти з застосунку?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "Копіювання до буфера обміну" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "Скопійовано до буфера обміну" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "Показати подробиці помилки" #: src/window/mod.rs:289 msgid "Help" msgstr "Довідка" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "Гаразд, зрозуміло" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "Відкрити налаштування?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" "Можливо, раніше вибраний формат недоступний. Відкрийте налаштування і " "виберіть формат для продовження запису." #: src/window/mod.rs:308 msgid "Later" msgstr "Пізніше" #: src/window/mod.rs:310 msgid "Open" msgstr "Відкрити" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "Триває запис" #: src/window/mod.rs:509 msgid "Paused" msgstr "Зупинено" #: src/window/mod.rs:546 msgid "Normal" msgstr "Звичайний" #: src/window/mod.rs:547 msgid "Selection" msgstr "Ділянка" #~ msgid "Failed to start device monitor" #~ msgstr "Не вдалося запустити монітор пристрою" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "Не вдалося під'єднатися до фонової служби PulseAudio" #~ msgid "No microphone source found" #~ msgstr "Не знайдено мікрофона" #~ msgid "No desktop speaker source found" #~ msgstr "Не знайдено динаміка настільного ПК" #~ msgid "Ok" #~ msgstr "Гаразд" #~ msgid "This frame rate may cause performance issues." #~ msgstr "Така частота кадрів може спричинити проблеми зі швидкодією." #~ msgid "approx." #~ msgstr "приблизно." #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ Вибір монітора, вікна або частини екрана для запису" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 Вибір кількох джерел" #~ msgid "No Profile" #~ msgstr "Немає профілю" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "Клацніть тут, щоб переглянути відео." #~ msgid "Failed to select saving location" #~ msgstr "Не вдалося вибрати місце збереження" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "Не вдалося відкрити файл для запису" #~ msgid "Failed to select folder" #~ msgstr "Не вдалося вибрати теку" #~ msgid "Donate (Liberapay)" #~ msgstr "Підтримати (Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "Підтримати (PayPal)" #~ msgid "Check out {} for help." #~ msgstr "Перегляньте {}, щоб отримати довідку." #~ msgid "Failed to open “{}” for writing" #~ msgstr "Не вдалося відкрити «{}» для запису" #~ msgid "_Cancel" #~ msgstr "_Скасувати" #~ msgid "_Select" #~ msgstr "_Вибрати" #~ msgid "No folder selected" #~ msgstr "Тека не вибрана" #~ msgid "Please choose a folder and try again." #~ msgstr "Виберіть теку та повторіть спробу." #~ msgid "Cannot access “{}”" #~ msgstr "Не вдалося отримати доступ до «{}»" #~ msgid "Please choose an accessible location and try again." #~ msgstr "Виберіть доступне розташування та повторіть спробу." #~ msgid "Enable Desktop Sounds" #~ msgstr "Увімкнути звуки комп'ютера" #~ msgid "Disable Desktop Sounds" #~ msgstr "Вимкнути звуки комп'ютера" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 Записування екрана без зайвих рухів." #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "" #~ "🎙️ Запис звуків за допомогою мікрофона, звуків комп'ютера, або обох " #~ "одночасно." #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 Підтримка форматів WebM, MP4, GIF та MKV." #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 Вибір кількох джерел." #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 Додаткове апаратне прискорене кодування" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ Вибір монітора або вікна для записування." #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ Вибір ділянки екрана." #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ Налаштування затримки початку запису." #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ Показ або приховування вказівника миші." #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 Вибір місця збереження записів." #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ Можливість застосовувати комбінації клавіш." #~ msgid "Toggle Computer Sounds" #~ msgstr "Увімкнути/вимкнути звуки комп’ютера" #~ msgid "_Delay" #~ msgstr "_Затримка" #~ msgid "3 seconds" #~ msgstr "3 секунди" #~ msgid "5 seconds" #~ msgstr "5 секунд" #~ msgid "10 seconds" #~ msgstr "10 секунд" #~ msgid "_Video Format" #~ msgstr "_Формат відео" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "_Зберегти до…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "Можливо не встановлено плагін GStreamer. Якщо він встановлений, але не " #~ "працює належним чином, повідомте про це на сторінці проблем Kooha." #~ msgid "Record Computer Sounds" #~ msgstr "Записувати звуки комп'ютера" #~ msgid "Record From Microphone" #~ msgstr "Записувати з мікрофона" #~ msgid "Dave Patrick" #~ msgstr "Дейв Патрік" #~ msgid "Cancel Delay" #~ msgstr "Скасувати Затримку" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Авторське право 2021 Дейв Патрік" #~ msgid "Screencast Recorded!" #~ msgstr "Записано!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "Запис збережено до «{}»" #~ msgid "Open File" #~ msgstr "Відкрити файл" #~ msgid "Screencast Portal Request Error" #~ msgstr "Помилка запиту порталу Screencast" #~ msgid "Pipeline Build Error" #~ msgstr "Помилка побудови pipeline" #~ msgid "Recording Error" #~ msgstr "Помилка записування" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "Обов’язково перевірте наявність залежностей виконання та Не працює " #~ "сторінка." #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "Переконайтеся, що місце збереження існує та доступне. Якщо так, це " #~ "вказує, що сталася невідома помилка. Будь ласка, повідомте про неї на сторінці обговорень " #~ "Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If it actually exists, " #~ "something went wrong and please report to Kooha's issue page." #~ msgstr "" #~ "Переконайтеся, що місце збереження існує. Якщо воно справді існує, щось " #~ "пішло не так. Повідомте про це на сторінці проблем Kooha." #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "Можливо, не встановлено плагін GStreamer. Якщо встановлено, тоді " #~ "надішліть звіт на сторінці проблем Kooha." #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "Переконайтеся, що розташування для збереження існує. Якщо ні, тоді щось " #~ "пішло не так, тоді можете повідомити про це на сторінці проблем Kooha." #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "Знімайте свій екран просто і безболісно, без відволікань." #~ msgid "" #~ "Make sure to check for the runtime dependencies and \"It Doesn't Work\" " #~ "page in Kooha's readme page. ({})" #~ msgstr "" #~ "Обов'язково перевірте наявність залежностей середовища виконання та «It " #~ "Doesn't Work» на сторінці readme Kooha. ({})" #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's " #~ "issue page. ({})" #~ msgstr "" #~ "Можливо, не встановлено плагін GStreamer. Якщо ні, повідомте про це на " #~ "сторінці проблем Kooha. ({})" #~ msgid "Screencast Portal Request Failed" #~ msgstr "Помилка запиту на портал трансляції екрана" #~ msgid "Recording Failed" #~ msgstr "Не вдалося записати" #~ msgid "Pipeline Build Failed" #~ msgstr "Помилка побудови каналу" #~ msgid "Please choose an accessible location and retry." #~ msgstr "Будь-ласка, оберіть доступне місце збереження, і спобуйте ще раз." #~ msgid "Select a Folder" #~ msgstr "Вибрати папку" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ Вибір меж записування екрана." #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 Підтримка вільних відеоформатів Matroska та WebM." #~ msgid "Open menu" #~ msgstr "Відкрити меню" #~ msgid "Show keyboard shortcuts" #~ msgstr "Показати гарячі клавіші" #, fuzzy #~ msgid "Toggle record" #~ msgstr "Перемкнути запис" #~ msgid "Cancel delay" #~ msgstr "Скасувати затримку" #, fuzzy #~ msgid "Toggle computer sounds" #~ msgstr "Записувати або не записувати звуки комп'ютера" #~ msgid "Toggle microphone" #~ msgstr "Ввімкнути або вимкнути мікрофон" #~ msgid "Toggle pointer" #~ msgstr "Показувати або сховати вказівник миші" #~ msgid "Delay" #~ msgstr "Затримка" #~ msgid "Video Format" #~ msgstr "Формат Відео" #~ msgid "Save to…" #~ msgstr "Зберегти в…" #~ msgid "Keyboard Shortcuts" #~ msgstr "Гарячі Клавіші" #~ msgid "About Kooha" #~ msgstr "Про Kooha" #~ msgid "Select" #~ msgstr "Обрати" #~ msgid "Toggle capture mode" #~ msgstr "Змінити режим захоплення" #~ msgid "Full Screen" #~ msgstr "Повний екран" #~ msgid "Processing" #~ msgstr "Обробка" #~ msgid "Save location not set" #~ msgstr "Місце збереження не вказано" #~ msgid "Recording cannot start" #~ msgstr "Неможливо почати запис" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "Місце збереження яке Ви обрали може не існувати." #~ msgid "The recording has been saved in" #~ msgstr "Запис зебережено у" SeaDve-Kooha-12ed227/po/zh_Hans.po000066400000000000000000000547161505224011700166320ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # TheInterestingSoul , 2021, 2022. # Zhou Nan , 2021, 2022. # Zhongrui Cao , 2021. # WhiredPlanck , 2021. # Liu Tao , 2021. # joe , 2022. # lumingzh , 2022. # Hugel , 2022. # Leedsgarden , 2022. # Deleted User , 2022. # yangyangdaji <1504305527@qq.com>, 2023. # CrackTC , 2023. # Carter Zhang , 2023. # Jianhua Lu , 2024. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2024-03-28 05:01+0000\n" "Last-Translator: Jianhua Lu \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\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: Weblate 5.5-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "优雅地录制屏幕" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Recorder;Screen;Video;录屏;录制;视频;屏幕;屏幕录制;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "以直观、直接的方式捕捉屏幕,无需分心。" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha 是一个界面极简的录屏软件。无需一系列的配置,只需轻点一下即可开始录制。" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "Kooha 的主要特性有:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️ 可以同时录制麦克风,电脑音频" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼 支持MP4、GIF、WebM、MKV、MKA和MKS格式" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️选择显示器或者屏幕的一块区域进行录制" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "🛠️ 你可以配置光标是否可见,帧率的大小和延迟的高低,将配置文件保存在本地" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀 尝试使用硬件加速编码" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "选择区域" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "取消" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "完成" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "重设选区" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "通用" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "延迟(s)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "开始录制之前的时间间隔" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "录制文件夹" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "录制的目标文件夹" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "视频" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "格式" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "帧率" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "打开菜单" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "显示设置" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "显示快捷键" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "退出" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "录制中" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "录制/停止" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "继续/暂停" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "取消录制" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "设置" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "打开/关闭电脑音频" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "打开/关闭麦克风" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "显示/隐藏鼠标指针" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "主菜单" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "捕捉一个显示器或窗口" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "捕捉一个屏幕选区" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "打开桌面音频" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "关闭桌面音频" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "打开麦克风" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "关闭麦克风" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "显示鼠标指针" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "隐藏鼠标指针" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "开始录制" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "录制" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "重设原先的视频源" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "停止记录" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "停止" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "停止录制" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "即将录制……" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "取消录制" #: data/resources/ui/window.ui:259 msgid "Flushing…" msgstr "冲制中…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "设置 (_P)" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "快捷键(_K)" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "关于 Kooha (_A)" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "" "有趣的灵魂 (@TheInterestingSoul)\n" "Zhou Nan <zhounan@nfschina.com>\n" "Zhongrui Cao <zhongrui.cao@suse.com>\n" "WhiredPlanck <wplanck@aosc.io>\n" "lumingzh <lumingzh@qq.com>" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "捐赠(买我一杯咖啡!)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "翻译" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "截屏记录" #: src/application.rs:144 msgid "Show in Files" msgstr "在文件中显示" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "寻找默认音频设备失败" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "确保你已在系统安装PulseAudio。" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "{time} 时" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "{time} 分" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "{time} 秒" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "设置录制文件夹失败" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "在已选择的编码格式下此帧率可能会造成性能问题。" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "此格式是实验性的,不受支持。" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "无" #: src/recording.rs:42 msgid "No active profile" msgstr "配置无效" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "开始录制失败" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "查看 “{link}” 以获取帮助。" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "GStreamer plugin可能没有安装。" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "确保保存路径存在并可以访问。" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "录制时产生错误" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "无法打开并写入 “{path}”" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "选择录制保存文件夹" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "切换暂停状态失败" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" "当前一个录制任务正在进行。 立即退出可能造成录制的文件无法播放。 请在退出前停" "止录制。" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "退出会取消此正在处理的任务且可能导致录制的文件无法播放。" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "退出此应用?" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "复制到剪贴板" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "已复制到剪贴板" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "显示错误详情" #: src/window/mod.rs:289 msgid "Help" msgstr "帮助" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "好的,明白了" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "是否要打开设置?" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "先前选择的格式可能不可用。打开首选项并选择一种格式以继续录制。" #: src/window/mod.rs:308 msgid "Later" msgstr "稍后" #: src/window/mod.rs:310 msgid "Open" msgstr "打开" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "一个录制任务正在进行" #: src/window/mod.rs:509 msgid "Paused" msgstr "已暂停" #: src/window/mod.rs:546 msgid "Normal" msgstr "一般" #: src/window/mod.rs:547 msgid "Selection" msgstr "选区录制" #~ msgid "Failed to start device monitor" #~ msgstr "启动设备监视器失败" #~ msgid "Failed to connect to PulseAudio daemon" #~ msgstr "连接到PulseAudio守护进程失败" #~ msgid "No microphone source found" #~ msgstr "没有找到麦克风源" #~ msgid "No desktop speaker source found" #~ msgstr "没有找到桌面音频源" #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "This frame rate may cause performance issues." #~ msgstr "此帧率可能会导致性能问题。" #~ msgid "approx." #~ msgstr "大约。" #~ msgid "🖥️ Select a monitor, a window, or a portion of the screen to record" #~ msgstr "🖥️ 你可以录制桌面,窗口或者屏幕的指定部分" #~ msgid "🗔 Multiple sources selection" #~ msgstr "🗔 你可以同时启用多个录制源" #~ msgid "Dave Patrick Caberto" #~ msgstr "Dave Patrick Caberto" #~ msgid "© 2022 Dave Patrick Caberto" #~ msgstr "© 2022 Dave Patrick Caberto" #~ msgid "Click here to view the video." #~ msgstr "点击此处查看视频。" #~ msgid "Failed to select saving location" #~ msgstr "选择保存位置失败" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "Matroska" #~ msgstr "Matroska" #~ msgid "WebM VP9" #~ msgstr "WebM VP9" #~ msgid "WebM AV1" #~ msgstr "WebM AV1" #~ msgid "WebM VAAPI VP8" #~ msgstr "WebM VAAPI VP8" #~ msgid "WebM VAAPI VP9" #~ msgstr "WebM VAAPI VP9" #~ msgid "WebM VAAPI H264" #~ msgstr "WebM VAAPI H264" #~ msgid "Failed to open file for writing" #~ msgstr "打开文件写入失败" #~ msgid "Donate (Liberapay)" #~ msgstr "捐赠(Liberapay)" #~ msgid "Donate (PayPal)" #~ msgstr "捐赠(PayPal)" #~ msgid "Check out {} for help." #~ msgstr "查看{}以获取帮助。" #~ msgid "Failed to open “{}” for writing" #~ msgstr "打开“{}”写入失败" #~ msgid "_Cancel" #~ msgstr "取消(_C)" #~ msgid "_Select" #~ msgstr "选择(_S)" #~ msgid "No folder selected" #~ msgstr "没有选中文件夹" #~ msgid "Please choose a folder and try again." #~ msgstr "请选择一个文件夹,然后重试。" #~ msgid "Cannot access “{}”" #~ msgstr "无法访问“{}”" #~ msgid "Please choose an accessible location and try again." #~ msgstr "请选择一个可以访问的位置并重试。" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 轻松录屏,省心省时。" #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ 录制麦克风或计算机声音,抑或两者同时录制。" #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 支持 WebM、MP4、GIF 和 MKV 格式。" #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 多个画面来源选择。" #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 可选硬件加速编码" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ 选择显示器或窗口以录制。" #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ 在屏幕上选择特定区域来捕获画面。" #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ 在开始录制之前设置延迟来准备。" #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ 显示/隐藏鼠标指针。" #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 为您的录像选择一个保存位置。" #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ 键盘快捷键让你事半功倍。" #~ msgid "Toggle Computer Sounds" #~ msgstr "切换电脑声音录制状态" #~ msgid "_Delay" #~ msgstr "延迟(_D)" #~ msgid "3 seconds" #~ msgstr "3秒" #~ msgid "5 seconds" #~ msgstr "5 秒" #~ msgid "10 seconds" #~ msgstr "10 秒" #~ msgid "_Video Format" #~ msgstr "视频格式(_V)" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "保存到(_S)…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "可能未安装 GStreamer 插件。如果已安装但仍无法正常工作,请报告kooha问题页面。" #~ msgid "Record Computer Sounds" #~ msgstr "录制本机声音" #~ msgid "Record From Microphone" #~ msgstr "录制麦克风声音" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "取消延迟" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "版权所有: Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "屏幕已录制!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "录制文件已保存到“{}”" #~ msgid "Open File" #~ msgstr "打开文件" #~ msgid "Screencast Portal Request Error" #~ msgstr "请求录制入口时出错" #~ msgid "Pipeline Build Error" #~ msgstr "管道构建时出错" #~ msgid "Recording Error" #~ msgstr "录制时出错" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "请确保检查运行时依赖和“为何不工作”说明页。" #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "‎确保保存位置存在或可访问。如果确实存在且可访问,则出问题,请报告给‎‎‎‎古嗣的问题页面‎‎‎。" #~ msgid "" #~ "A GStreamer plugin may not be installed. If not, please report to Kooha's issue page." #~ msgstr "" #~ "GStreamer 插件或许未安装。如果不是这样,请将此报告到 Kooha 的 Issue 页处。" #~ msgid "" #~ "Make sure that the saving location exists. If not, something went wrong " #~ "and please report to Kooha's issue page." #~ msgstr "" #~ "请确保保存的位置存在。如果位置确实存在,说明有故障,请将此报告到 Kooha 的 Issue 页处。" #~ msgid "" #~ "Capture your screen in a straightforward and painless way without " #~ "distractions." #~ msgstr "以直截了当、无痛无扰的方式录制你的屏幕。" #~ msgid "Please choose an accessible location and retry." #~ msgstr "请选择一个可访问的位置,然后重试。" #~ msgid "Select a Folder" #~ msgstr "选择一个文件夹" #~ msgid "🖼️ Select an area of your screen to record." #~ msgstr "🖼️ 选择屏幕中要录制的区域。" #~ msgid "📼 Support for the free Matroska and WebM formats." #~ msgstr "📼 支持 MKV 与 WebM 格式。" #~ msgid "Open menu" #~ msgstr "打开菜单" #~ msgid "Show keyboard shortcuts" #~ msgstr "显示键盘快捷键" #~ msgid "Toggle record" #~ msgstr "开始/结束录制" #~ msgid "Toggle record pause" #~ msgstr "暂停/继续录制" #~ msgid "Cancel delay" #~ msgstr "取消延迟" #~ msgid "Toggle computer sounds" #~ msgstr "切换本机声音录制" #~ msgid "Toggle microphone" #~ msgstr "切换麦克风录制" #~ msgid "Toggle pointer" #~ msgstr "切换鼠标指针显示" #~ msgid "Delay" #~ msgstr "延迟" #~ msgid "Video Format" #~ msgstr "视频格式" #~ msgid "Save to…" #~ msgstr "保存至……" #~ msgid "Keyboard Shortcuts" #~ msgstr "快捷键" #~ msgid "About Kooha" #~ msgstr "关于 Kooha" #~ msgid "Sorry! An error has occured." #~ msgstr "抱歉!软件出现了问题。" #~ msgid "Videos" #~ msgstr "视频" #~ msgid "Failed to create session." #~ msgstr "无法创建会话。" #~ msgid "Failed to select sources." #~ msgstr "无法选择录制源。" #~ msgid "Select" #~ msgstr "选择" #~ msgid "Inaccessible location “{directory}”" #~ msgstr "无法访问 “{directory}”" #~ msgid "The recording has been saved in {saving_location}" #~ msgstr "录像已保存至 {saving_location}" #~ msgid "Inaccessible location '{directory}'" #~ msgstr "无法访问位置 '{directory}'" #~ msgid "Toggle capture mode" #~ msgstr "切换画面捕获模式" #~ msgid "Full Screen" #~ msgstr "全屏录制" #~ msgid "Processing" #~ msgstr "处理中" #~ msgid "Save location not set" #~ msgstr "未设置保存位置" #~ msgid "Recording cannot start" #~ msgstr "无法开始录制" #~ msgid "The saving location you have selected may have been deleted." #~ msgstr "您所选择的保存位置可能已被删除。" #~ msgid "The recording has been saved in" #~ msgstr "录屏视频已保存到" #~ msgid "Record computer sounds" #~ msgstr "录制本机声音" #~ msgid "Record from microphone" #~ msgstr "录制麦克风声音" #~ msgid "Show pointer" #~ msgstr "显示鼠标指针" #~ msgid "Elegantly record your screen " #~ msgstr "优雅地录制你的屏幕。 " #~ msgid "Simple screen recorder" #~ msgstr "简单的屏幕录制工具" #~ msgid "" #~ "Kooha is a simple screen recorder built with GTK. It allows you to record " #~ "your screen and also audio from your microphone or desktop." #~ msgstr "" #~ "Kooha 是一个使用 GTK 构建的简单的屏幕录制工具。它可以录制你的屏幕和来自你" #~ "的麦克风或计算机内的声音。" SeaDve-Kooha-12ed227/po/zh_Hant.po000066400000000000000000000355201505224011700166230ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the kooha package. # Kisaragi Hiu , 2022. # 黃政揚 , 2025. # wumou , 2025. msgid "" msgstr "" "Project-Id-Version: kooha\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-23 11:08+0800\n" "PO-Revision-Date: 2025-08-07 21:01+0000\n" "Last-Translator: wumou \n" "Language-Team: Chinese (Traditional Han script) \n" "Language: zh_Hant\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: Weblate 5.13-dev\n" #: data/io.github.seadve.Kooha.desktop.in.in:2 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:7 src/about.rs:24 #: src/main.rs:61 msgid "Kooha" msgstr "Kooha" #: data/io.github.seadve.Kooha.desktop.in.in:4 #: data/io.github.seadve.Kooha.metainfo.xml.in.in:8 msgid "Elegantly record your screen" msgstr "優雅地錄下螢幕內容" #. Translators: These are search terms to find this application. Do NOT translate or localize the semicolons. The list MUST also end with a semicolon. #: data/io.github.seadve.Kooha.desktop.in.in:9 msgid "Screencast;Recorder;Screen;Video;" msgstr "Screencast;Recorder;Screen;Video;螢幕錄影;錄影;螢幕;" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:10 msgid "" "Capture your screen in a intuitive and straightforward way without " "distractions." msgstr "用可觀並直覺的方式截取您的螢幕,沒有讓人分心的東西。" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:11 msgid "" "Kooha is a simple screen recorder with a minimalist interface. You can just " "click the record button without having to configure a bunch of settings." msgstr "" "Kooha 是一個簡潔的螢幕錄影工具。Kooha 使用極簡化的介面,您只需要按下錄影按" "鈕,不需要調整一大堆設定。" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:13 msgid "The main features of Kooha include the following:" msgstr "以下是 Kooha 的主要功能:" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:15 msgid "🎙️ Record microphone, desktop audio, or both at the same time" msgstr "🎙️用麥克風錄音,電腦聲音,或兩者同時進行" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:16 msgid "📼 Support for WebM, MP4, GIF, and Matroska formats" msgstr "📼支持WebM,MP4,GIF,MKV檔案格式" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:17 msgid "🖥️ Select a monitor or a portion of the screen to record" msgstr "🖥️選擇一個顯示器或是螢幕的一部分來紀錄" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:18 msgid "" "🛠️ Configurable saving location, pointer visibility, frame rate, and delay" msgstr "🛠️可自訂的儲存位置,游標能見度,影格速率和延遲" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:19 msgid "🚀 Experimental hardware accelerated encoding" msgstr "🚀實驗性的硬體加速編碼" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:25 msgid "Recording options and button to start recording" msgstr "錄影的選項和按鈕來開始錄影" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:29 msgid "In-progress recording duration and button to stop recording" msgstr "" #: data/io.github.seadve.Kooha.metainfo.xml.in.in:33 msgid "Countdown to start recording and button to cancel recording" msgstr "" #: data/resources/ui/area_selector.ui:15 msgid "Select Area" msgstr "選擇範圍" #: data/resources/ui/area_selector.ui:20 data/resources/ui/window.ui:235 #: data/resources/ui/window.ui:278 src/window/mod.rs:213 msgid "Cancel" msgstr "取消" #: data/resources/ui/area_selector.ui:26 msgid "Done" msgstr "完成" #: data/resources/ui/area_selector.ui:35 msgid "Reset Selection" msgstr "重設選擇" #: data/resources/ui/preferences_dialog.ui:10 data/resources/ui/shortcuts.ui:10 msgid "General" msgstr "一般" #: data/resources/ui/preferences_dialog.ui:13 msgid "Delay (Seconds)" msgstr "延遲(秒)" #: data/resources/ui/preferences_dialog.ui:14 msgid "Time interval before recording begins" msgstr "" #: data/resources/ui/preferences_dialog.ui:27 msgid "Recordings Folder" msgstr "" #: data/resources/ui/preferences_dialog.ui:28 msgid "Destination folder for the recordings" msgstr "" #: data/resources/ui/preferences_dialog.ui:50 msgid "Video" msgstr "影片" #: data/resources/ui/preferences_dialog.ui:53 msgid "Format" msgstr "格式" #: data/resources/ui/preferences_dialog.ui:58 msgid "Frame Rate" msgstr "幀率" #: data/resources/ui/shortcuts.ui:14 msgid "Open Menu" msgstr "開啟選單" #: data/resources/ui/shortcuts.ui:20 msgid "Show Preferences" msgstr "" #: data/resources/ui/shortcuts.ui:26 msgid "Show Shortcuts" msgstr "顯示快捷鍵" #: data/resources/ui/shortcuts.ui:32 src/window/mod.rs:215 msgid "Quit" msgstr "離開" #: data/resources/ui/shortcuts.ui:39 src/window/mod.rs:501 msgid "Recording" msgstr "正在錄影" #: data/resources/ui/shortcuts.ui:43 msgid "Toggle Record" msgstr "切換錄影" #: data/resources/ui/shortcuts.ui:50 msgid "Toggle Pause" msgstr "切換暫停" #: data/resources/ui/shortcuts.ui:56 msgid "Cancel Record" msgstr "取消錄影" #: data/resources/ui/shortcuts.ui:63 msgid "Settings" msgstr "設定" #: data/resources/ui/shortcuts.ui:67 msgid "Toggle Desktop Audio" msgstr "" #: data/resources/ui/shortcuts.ui:73 msgid "Toggle Microphone" msgstr "切換麥克風" #: data/resources/ui/shortcuts.ui:79 msgid "Toggle Pointer" msgstr "切換游標" #: data/resources/ui/window.ui:26 msgid "Main Menu" msgstr "主選單" #: data/resources/ui/window.ui:55 msgid "Capture a Monitor or Window" msgstr "截取一個螢幕或視窗" #: data/resources/ui/window.ui:68 msgid "Capture a Selection of Screen" msgstr "選取畫面上的區域進行截取" #: data/resources/ui/window.ui:88 msgid "Enable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:89 msgid "Disable Desktop Audio" msgstr "" #: data/resources/ui/window.ui:97 msgid "Enable Microphone" msgstr "開啟麥克風" #: data/resources/ui/window.ui:98 msgid "Disable Microphone" msgstr "關閉麥克風" #: data/resources/ui/window.ui:106 msgid "Show Pointer" msgstr "顯示游標" #: data/resources/ui/window.ui:107 msgid "Hide Pointer" msgstr "隱藏游標" #: data/resources/ui/window.ui:117 msgid "Start Recording" msgstr "開始錄影" #: data/resources/ui/window.ui:118 msgid "Record" msgstr "錄影" #: data/resources/ui/window.ui:131 msgid "Forget Previously Selected Video Sources" msgstr "" #: data/resources/ui/window.ui:182 msgid "Stop Recording" msgstr "停止錄影" #: data/resources/ui/window.ui:183 msgid "Stop" msgstr "停止" #: data/resources/ui/window.ui:193 msgid "Pause Recording" msgstr "" #: data/resources/ui/window.ui:216 msgid "Recording in…" msgstr "即將開始錄影…" #: data/resources/ui/window.ui:234 data/resources/ui/window.ui:277 msgid "Cancel Recording" msgstr "取消錄影" #: data/resources/ui/window.ui:259 #, fuzzy msgid "Flushing…" msgstr "正在寫入…" #: data/resources/ui/window.ui:295 msgid "_Preferences" msgstr "" #: data/resources/ui/window.ui:299 msgid "_Keyboard Shortcuts" msgstr "鍵盤快捷鍵(_K)" #: data/resources/ui/window.ui:303 msgid "_About Kooha" msgstr "關於 Kooha(_A)" #. Translators: Replace "translator-credits" with your names. Put a comma between. #: src/about.rs:35 msgid "translator-credits" msgstr "Kisaragi Hiu" #: src/about.rs:45 msgid "Donate (Buy Me a Coffee)" msgstr "贊助(請我一杯咖啡)" #: src/about.rs:48 msgid "GitHub" msgstr "GitHub" #: src/about.rs:50 msgid "Translate" msgstr "翻譯" #. Translators: This is a message that the user will see when the recording is finished. #: src/application.rs:137 msgid "Screencast recorded" msgstr "" #: src/application.rs:144 msgid "Show in Files" msgstr "" #: src/device.rs:26 msgid "Failed to find the default audio device" msgstr "" #: src/device.rs:27 msgid "Make sure that you have PulseAudio installed in your system." msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:36 msgid "{time} hour" msgid_plural "{time} hours" msgstr[0] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:43 msgid "{time} minute" msgid_plural "{time} minutes" msgstr[0] "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/format.rs:50 msgid "{time} second" msgid_plural "{time} seconds" msgstr[0] "" #: src/preferences_dialog.rs:77 msgid "Failed to set recordings folder" msgstr "" #: src/preferences_dialog.rs:238 msgid "This frame rate may cause performance issues on the selected format." msgstr "" #: src/preferences_dialog.rs:302 msgid "This format is experimental and unsupported." msgstr "" #: src/preferences_dialog.rs:309 src/window/mod.rs:559 msgid "None" msgstr "無" #: src/recording.rs:42 msgid "No active profile" msgstr "" #: src/recording.rs:185 src/recording.rs:224 src/recording.rs:274 msgid "Failed to start recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:188 msgid "Check out {link} for help." msgstr "" #: src/recording.rs:225 msgid "A GStreamer plugin may not be installed." msgstr "" #: src/recording.rs:275 src/recording.rs:504 msgid "Make sure that the saving location exists and is accessible." msgstr "" #: src/recording.rs:495 msgid "An error occurred while recording" msgstr "" #. Translators: Do NOT translate the contents between '{' and '}', this is a variable name. #: src/recording.rs:501 msgid "Failed to open “{path}” for writing" msgstr "" #: src/settings.rs:43 msgid "Select Recordings Folder" msgstr "選取儲存錄影的資料夾" #: src/window/mod.rs:78 msgid "Failed to toggle pause" msgstr "" #: src/window/mod.rs:199 msgid "" "A recording is currently in progress. Quitting immediately may cause the " "recording to be unplayable. Please stop the recording before quitting." msgstr "" #: src/window/mod.rs:202 msgid "" "Quitting will cancel the processing and may cause the recording to be " "unplayable." msgstr "" #: src/window/mod.rs:208 msgid "Quit the Application?" msgstr "" #: src/window/mod.rs:256 msgid "Copy to clipboard" msgstr "" #: src/window/mod.rs:261 msgid "Copied to clipboard" msgstr "" #: src/window/mod.rs:267 msgid "Show detailed error" msgstr "" #: src/window/mod.rs:289 msgid "Help" msgstr "" #: src/window/mod.rs:294 msgid "Ok, Got It" msgstr "" #: src/window/mod.rs:303 msgid "Open Preferences?" msgstr "" #: src/window/mod.rs:304 msgid "" "The previously selected format may have been unavailable. Open preferences " "and select a format to continue recording." msgstr "" #: src/window/mod.rs:308 msgid "Later" msgstr "" #: src/window/mod.rs:310 msgid "Open" msgstr "" #: src/window/mod.rs:461 msgid "A recording is in progress" msgstr "" #: src/window/mod.rs:509 msgid "Paused" msgstr "已暫停" #: src/window/mod.rs:546 msgid "Normal" msgstr "一般" #: src/window/mod.rs:547 msgid "Selection" msgstr "選取區域" #~ msgid "GIF" #~ msgstr "GIF" #~ msgid "WebM" #~ msgstr "WebM" #~ msgid "MP4" #~ msgstr "MP4" #~ msgid "🎥 Capture your screen without any hassle." #~ msgstr "🎥 一點麻煩都沒有地截取您的螢幕。" #~ msgid "🎙️ Record your microphone, computer sounds, or both at the same time." #~ msgstr "🎙️ 錄下您的麥克風、電腦內部音訊,或是兩個都錄。" #~ msgid "📼 Support for WebM, MP4, GIF, and MKV formats." #~ msgstr "📼 支援 WebM、MP4、GIF 及 MKV 格式。" #~ msgid "🗔 Multiple sources selection." #~ msgstr "🗔 選取多個來源。" #~ msgid "🚀 Optional hardware accelerated encoding" #~ msgstr "🚀 編碼可以選擇使用硬體加速" #~ msgid "🖥️ Select a monitor or window to record." #~ msgstr "🖥️ 選取要錄影的螢幕或視窗。" #~ msgid "🖼️ Create a selection to capture certain area from your screen." #~ msgstr "🖼️ 選取並截取螢幕的一部分。" #~ msgid "⏲️ Set delay to prepare before you start recording." #~ msgstr "⏲️ 設定開始錄影前的延遲,讓您進行準備。" #~ msgid "🖱️ Hide or show mouse pointer." #~ msgstr "🖱️ 隱藏或顯示滑鼠游標。" #~ msgid "💾 Choose a saving location for your recording." #~ msgstr "💾 選擇您的錄影要儲存的地方。" #~ msgid "⌨️ Utilize helpful keyboard shortcuts." #~ msgstr "⌨️ 利用好用的鍵盤快捷鍵。" #~ msgid "Toggle Computer Sounds" #~ msgstr "切換電腦內部音訊" #~ msgid "_Delay" #~ msgstr "延遲(_D)" #~ msgid "5 seconds" #~ msgstr "5 秒" #~ msgid "10 seconds" #~ msgstr "10 秒" #~ msgid "_Video Format" #~ msgstr "影片格式(_V)" #~ msgid "MKV" #~ msgstr "MKV" #~ msgid "_Save to…" #~ msgstr "儲存到(_S)…" #~ msgid "" #~ "A GStreamer plugin may not be installed. If it is installed but still " #~ "does not work properly, please report to Kooha's issue page." #~ msgstr "" #~ "可能有一個 GStreamer 外掛程式尚未安裝。如果已經安裝了卻還是無法正常運作," #~ "請到 Kooha 的 issue 頁" #~ "面進行回報。" #~ msgid "Record Computer Sounds" #~ msgstr "錄下電腦內部音訊" #~ msgid "Record From Microphone" #~ msgstr "錄下麥克風" #~ msgid "Dave Patrick" #~ msgstr "Dave Patrick" #~ msgid "Cancel Delay" #~ msgstr "取消延遲" #~ msgid "Copyright 2021 Dave Patrick" #~ msgstr "Copyright 2021 Dave Patrick" #~ msgid "Screencast Recorded!" #~ msgstr "螢幕錄影完成!" #~ msgid "The recording has been saved in “{}”" #~ msgstr "已將錄影儲存到「{}」" #~ msgid "Open File" #~ msgstr "開啟檔案" #~ msgid "Screencast Portal Request Error" #~ msgstr "螢幕錄影 (screencast) portal 請求錯誤" #~ msgid "Pipeline Build Error" #~ msgstr "管線建構錯誤" #~ msgid "Recording Error" #~ msgstr "錄影錯誤" #~ msgid "" #~ "Make sure to check for the runtime dependencies and It Doesn't Work page." #~ msgstr "" #~ "請確保執行時所需的軟體有安裝。也請參照無法正常運作時的說明。" #~ msgid "" #~ "Make sure that the saving location exists or is accessible. If it " #~ "actually exists or is accessible, something went wrong and please report " #~ "to Kooha's issue page." #~ msgstr "" #~ "請確保儲存的目的地存在或是可存取。如果它的確存在或可存取,那就代表有東西出" #~ "錯了,請到 Kooha 的 " #~ "issue 頁面進行回報。" SeaDve-Kooha-12ed227/src/000077500000000000000000000000001505224011700150345ustar00rootroot00000000000000SeaDve-Kooha-12ed227/src/about.rs000066400000000000000000000137071505224011700165240ustar00rootroot00000000000000use std::{ env, fs::File, io::{BufRead, BufReader}, path::Path, process::{Command, Stdio}, }; use adw::prelude::*; use anyhow::Result; use anyhow::anyhow; use gettextrs::gettext; use gst::prelude::*; use gtk::glib; use crate::{ config::{APP_ID, VERSION}, experimental, }; pub fn present_dialog(parent: &impl IsA) { let dialog = adw::AboutDialog::builder() .application_icon(APP_ID) .application_name(gettext("Kooha")) .developer_name("Dave Patrick Caberto") .version(VERSION) .copyright("© 2024 Dave Patrick Caberto") .license_type(gtk::License::Gpl30) .developers(vec![ "Dave Patrick Caberto", "Mathiascode", "Felix Weilbach", ]) // Translators: Replace "translator-credits" with your names. Put a comma between. .translator_credits(gettext("translator-credits")) .issue_url("https://github.com/SeaDve/Kooha/issues") .support_url("https://github.com/SeaDve/Kooha/discussions") .debug_info(debug_info()) .debug_info_filename("kooha-debug-info") .release_notes_version("2.3.0") .release_notes(release_notes()) .build(); dialog.add_link( &gettext("Donate (Buy Me a Coffee)"), "https://www.buymeacoffee.com/seadve", ); dialog.add_link(&gettext("GitHub"), "https://github.com/SeaDve/Kooha"); dialog.add_link( &gettext("Translate"), "https://hosted.weblate.org/projects/seadve/kooha", ); dialog.present(Some(parent)); } fn release_notes() -> &'static str { r#"

This release contains new features and fixes:

  • Area selector window is now resizable
  • Previous selected area is now remembered
  • Logout and idle are now inhibited while recording
  • Video format and FPS are now shown in the main view
  • Notifications now show the duration and size of the recording
  • Notification actions now work even when the application is closed
  • Progress is now shown when flushing the recording
  • It is now much easier to pick from frame rate options
  • Actually fixed audio from stuttering and being cut on long recordings
  • Record audio in stereo rather than mono when possible
  • Recordings are no longer deleted when flushing is cancelled
  • Significant improvements in recording performance
  • Improved preferences dialog UI
  • Fixed incorrect output video orientation on certain compositors
  • Fixed incorrect focus on area selector
  • Fixed too small area selector window default size on HiDPI monitors
  • Updated translations
"# } fn cpu_model() -> Result { let output = Command::new("lscpu") .stdout(Stdio::piped()) .spawn()? .wait_with_output()?; for res in output.stdout.lines() { let line = res?; if line.contains("Model name:") && let Some((_, value)) = line.split_once(':') { return Ok(value.trim().to_string()); } } Ok("".into()) } fn gpu_model() -> Result { let output = Command::new("lspci") .stdout(Stdio::piped()) .spawn()? .wait_with_output()?; for res in output.stdout.lines() { let line = res?; if line.contains("VGA") && let Some(value) = line.splitn(3, ':').last() { return Ok(value.trim().to_string()); } } Ok("".into()) } fn is_flatpak() -> bool { Path::new("/.flatpak-info").exists() } fn debug_info() -> String { let container = env::var("container") .ok() .or_else(|| is_flatpak().then(|| "Flatpak".to_string())) .unwrap_or_else(|| "none".into()); let experimental_features = experimental::enabled_features(); let language_names = glib::language_names().join(", "); let cpu_model = cpu_model().unwrap_or_else(|e| format!("<{}>", e)); let gpu_model = gpu_model().unwrap_or_else(|e| format!("<{}>", e)); let distribution = os_info("PRETTY_NAME").unwrap_or_else(|e| format!("<{}>", e)); let desktop_session = env::var("DESKTOP_SESSION").unwrap_or_else(|_| "".into()); let display_server = env::var("XDG_SESSION_TYPE").unwrap_or_else(|_| "".into()); let gtk_version = format!( "{}.{}.{}", gtk::major_version(), gtk::minor_version(), gtk::micro_version() ); let adw_version = format!( "{}.{}.{}", adw::major_version(), adw::minor_version(), adw::micro_version() ); let gst_version_string = gst::version_string(); let pipewire_version = gst::Registry::get() .find_feature("pipewiresrc", gst::ElementFactory::static_type()) .map_or("".into(), |feature| { feature .plugin() .map_or("".into(), |plugin| plugin.version()) }); format!( r#"- {APP_ID} {VERSION} - Container: {container} - Experimental Features: {experimental_features:?} - Language: {language_names} - CPU: {cpu_model} - GPU: {gpu_model} - Distribution: {distribution} - Desktop Session: {desktop_session} - Display Server: {display_server} - GTK {gtk_version} - Libadwaita {adw_version} - {gst_version_string} - Pipewire {pipewire_version}"# ) } fn os_info(key_name: &str) -> Result { let os_release_path = if is_flatpak() { "/run/host/etc/os-release" } else { "/etc/os-release" }; let file = File::open(os_release_path)?; for line in BufReader::new(file).lines() { let line = line?; let Some((key, value)) = line.split_once('=') else { continue; }; if key == key_name { return Ok(value.trim_matches('\"').to_string()); } } Err(anyhow!("unknown")) } SeaDve-Kooha-12ed227/src/application.rs000066400000000000000000000204031505224011700177040ustar00rootroot00000000000000use adw::{prelude::*, subclass::prelude::*}; use gettextrs::gettext; use gtk::{ gio, glib::{self, clone}, }; use crate::{ about, config::{APP_ID, PKGDATADIR, PROFILE, VERSION}, format, preferences_dialog::PreferencesDialog, settings::Settings, window::Window, }; mod imp { use std::cell::OnceCell; use super::*; #[derive(Debug, Default)] pub struct Application { pub(super) settings: OnceCell, } #[glib::object_subclass] impl ObjectSubclass for Application { const NAME: &'static str = "KoohaApplication"; type Type = super::Application; type ParentType = adw::Application; } impl ObjectImpl for Application {} impl ApplicationImpl for Application { fn activate(&self) { self.parent_activate(); let obj = self.obj(); if let Some(window) = obj.windows().first() { window.present(); return; } let window = Window::new(&obj); window.present(); } fn startup(&self) { self.parent_startup(); gtk::Window::set_default_icon_name(APP_ID); let obj = self.obj(); obj.setup_gactions(); obj.setup_accels(); } } impl GtkApplicationImpl for Application {} impl AdwApplicationImpl for Application {} } glib::wrapper! { pub struct Application(ObjectSubclass) @extends gio::Application, gtk::Application, adw::Application, @implements gio::ActionMap, gio::ActionGroup; } impl Application { pub fn new() -> Self { glib::Object::builder() .property("application-id", APP_ID) .property("resource-base-path", "/io/github/seadve/Kooha/") .build() } /// Returns the global instance of `Application`. /// /// # Panics /// /// Panics if the app is not running or if this is called on a non-main thread. pub fn get() -> Self { debug_assert!( gtk::is_initialized_main_thread(), "application must only be accessed in the main thread" ); gio::Application::default().unwrap().downcast().unwrap() } pub fn settings(&self) -> &Settings { self.imp().settings.get_or_init(|| { let settings = Settings::default(); if tracing::enabled!(tracing::Level::TRACE) { settings.connect_changed(None, |settings, key| { tracing::trace!("Settings `{}` changed to `{}`", key, settings.value(key)); }); } settings }) } pub fn window(&self) -> Window { self.active_window() .map_or_else(|| Window::new(self), |w| w.downcast().unwrap()) } pub async fn send_record_success_notification( &self, recording_file: &gio::File, duration: gst::ClockTime, ) { let mut body_fragments = vec![format::duration(duration)]; match recording_file .query_info_future( gio::FILE_ATTRIBUTE_STANDARD_SIZE, gio::FileQueryInfoFlags::NONE, glib::Priority::DEFAULT_IDLE, ) .await { Ok(file_info) => { let formatted_size = glib::format_size(file_info.size() as u64); body_fragments.push(formatted_size.to_string()); } Err(err) => tracing::warn!("Failed to get file size: {:?}", err), } // Translators: This is a message that the user will see when the recording is finished. let notification = gio::Notification::new(&gettext("Screencast recorded")); notification.set_body(Some(&body_fragments.join(", "))); notification.set_default_action_and_target_value( "app.launch-uri", Some(&recording_file.uri().to_variant()), ); notification.add_button_with_target_value( &gettext("Show in Files"), "app.show-in-files", Some(&recording_file.uri().to_variant()), ); self.send_notification(Some("record-success"), ¬ification); } pub fn run(&self) -> glib::ExitCode { tracing::info!("Kooha ({})", APP_ID); tracing::info!("Version: {} ({})", VERSION, PROFILE); tracing::info!("Datadir: {}", PKGDATADIR); ApplicationExtManual::run(self) } pub fn quit(&self) { glib::spawn_future_local(clone!( #[weak(rename_to = obj)] self, async move { if obj.quit_request().await.is_proceed() { ApplicationExt::quit(&obj); } } )); } async fn quit_request(&self) -> glib::Propagation { if let Some(window) = self.active_window() { let window = window.downcast::().unwrap(); if window.is_busy() { return window.run_quit_confirmation_dialog().await; } } glib::Propagation::Proceed } fn setup_gactions(&self) { let launch_uri_action = gio::ActionEntry::builder("launch-uri") .parameter_type(Some(&String::static_variant_type())) .activate(|obj: &Self, _, param| { let uri = param.unwrap().get::().unwrap(); glib::spawn_future_local(clone!( #[strong] obj, async move { if let Err(err) = gtk::FileLauncher::new(Some(&gio::File::for_uri(&uri))) .launch_future(obj.active_window().as_ref()) .await { tracing::error!("Failed to launch uri `{}`: {:?}", uri, err); } } )); }) .build(); let show_in_files_action = gio::ActionEntry::builder("show-in-files") .parameter_type(Some(&String::static_variant_type())) .activate(|obj: &Self, _, param| { let uri = param.unwrap().get::().unwrap(); glib::spawn_future_local(clone!( #[strong] obj, async move { if let Err(err) = gtk::FileLauncher::new(Some(&gio::File::for_uri(&uri))) .open_containing_folder_future(obj.active_window().as_ref()) .await { tracing::warn!("Failed to show `{}` in files: {:?}", uri, err); } } )); }) .build(); let quit_action = gio::ActionEntry::builder("quit") .activate(|obj: &Self, _, _| { obj.quit(); }) .build(); let show_preferences_action = gio::ActionEntry::builder("show-preferences") .activate(|obj: &Self, _, _| { let dialog = PreferencesDialog::new(obj.settings()); dialog.present(Some(&obj.window())); }) .build(); let show_about_action = gio::ActionEntry::builder("show-about") .activate(|obj: &Self, _, _| { about::present_dialog(&obj.window()); }) .build(); self.add_action_entries([ launch_uri_action, show_in_files_action, quit_action, show_preferences_action, show_about_action, ]); } fn setup_accels(&self) { self.set_accels_for_action("app.show-preferences", &["comma"]); self.set_accels_for_action("app.quit", &["q"]); self.set_accels_for_action("window.close", &["w"]); self.set_accels_for_action("win.record-desktop-audio", &["a"]); self.set_accels_for_action("win.record-microphone", &["m"]); self.set_accels_for_action("win.show-pointer", &["p"]); self.set_accels_for_action("win.toggle-record", &["r"]); // self.set_accels_for_action("win.toggle-pause", &["k"]); // See issue #112 in GitHub repo self.set_accels_for_action("win.cancel-record", &["c"]); } } SeaDve-Kooha-12ed227/src/area_selector/000077500000000000000000000000001505224011700176445ustar00rootroot00000000000000SeaDve-Kooha-12ed227/src/area_selector/mod.rs000066400000000000000000000411201505224011700207670ustar00rootroot00000000000000mod view_port; use adw::{prelude::*, subclass::prelude::*}; use anyhow::{Context, Result}; use futures_channel::oneshot::{self, Sender}; use gst::prelude::*; use gtk::{ gdk, glib::{self, clone}, graphene::Rect, }; use std::{cell::RefCell, os::unix::prelude::RawFd}; pub use self::view_port::Selection; use self::view_port::ViewPort; use crate::{application::Application, cancelled::Cancelled, pipeline, screencast_portal::Stream}; const PREVIEW_FRAMERATE: gst::Fraction = gst::Fraction::from_integer(60); const WINDOW_TO_MONITOR_SCALE_FACTOR: f64 = 0.4; // We can't get header bar height before the window is presented, so we assume "46" as the default. // It is not much of a problem if we get this wrong since the header bar height is not used for // anything important aside from the window size calculation. const ASSUMED_HEADER_BAR_HEIGHT: f64 = 46.0; #[derive(Debug)] pub struct SelectAreaData { /// Selection relative to `paintable_rect` pub selection: Selection, /// The geometry of paintable where the stream is displayed pub paintable_rect: Rect, /// Actual stream size pub stream_size: (i32, i32), } /// Context to identify if the selection is still valid. #[derive(Debug, Clone, PartialEq, glib::Variant)] pub struct SelectionContext { paintable_rect: (f64, f64, f64, f64), stream_size: (i32, i32), } impl SelectionContext { fn new(paintable_rect: Rect, stream_size: (i32, i32)) -> Self { Self { paintable_rect: ( paintable_rect.x() as f64, paintable_rect.y() as f64, paintable_rect.width() as f64, paintable_rect.height() as f64, ), stream_size, } } } mod imp { use std::cell::OnceCell; use gst::bus::BusWatchGuard; use super::*; #[derive(Debug, Default, gtk::CompositeTemplate)] #[template(resource = "/io/github/seadve/Kooha/ui/area_selector.ui")] pub struct AreaSelector { #[template_child] pub(super) window_title: TemplateChild, #[template_child] pub(super) done_button: TemplateChild, #[template_child] pub(super) stack: TemplateChild, #[template_child] pub(super) loading: TemplateChild, #[template_child] pub(super) view_port: TemplateChild, pub(super) pipeline: OnceCell, pub(super) stream_size: OnceCell<(i32, i32)>, pub(super) result_tx: RefCell>>>, pub(super) async_done_tx: RefCell>>>, pub(super) bus_watch_guard: OnceCell, } #[glib::object_subclass] impl ObjectSubclass for AreaSelector { const NAME: &'static str = "KoohaAreaSelector"; type Type = super::AreaSelector; type ParentType = adw::Window; fn class_init(klass: &mut Self::Class) { klass.bind_template(); klass.install_action("area-selector.cancel", None, move |obj, _, _| { if let Some(tx) = obj.imp().async_done_tx.take() { let _ = tx.send(Err(Cancelled::new("area select loading").into())); } if let Some(tx) = obj.imp().result_tx.take() { let _ = tx.send(Err(Cancelled::new("area select"))); obj.close(); } else { tracing::error!("Sent result twice"); } }); klass.install_action("area-selector.done", None, move |obj, _, _| { if let Some(tx) = obj.imp().result_tx.take() { let _ = tx.send(Ok(())); obj.close(); } else { tracing::error!("Sent response twice"); } }); klass.install_action("area-selector.reset", None, move |obj, _, _| { obj.imp().view_port.set_selection(None::); }); klass.add_binding_action( gdk::Key::Escape, gdk::ModifierType::empty(), "area-selector.cancel", ); } fn instance_init(obj: &glib::subclass::InitializingObject) { obj.init_template(); } } impl ObjectImpl for AreaSelector { fn constructed(&self) { self.parent_constructed(); let obj = self.obj(); self.view_port.connect_selection_notify(clone!( #[weak] obj, move |_| { obj.update_selection_ui(); } )); self.view_port.connect_paintable_rect_notify(clone!( #[weak] obj, move |_| { obj.update_selection_ui(); } )); obj.update_selection_ui(); } fn dispose(&self) { if let Some(pipeline) = self.pipeline.get() && let Err(err) = pipeline.set_state(gst::State::Null) { tracing::warn!("Failed to set pipeline to Null: {}", err); } } } impl WidgetImpl for AreaSelector {} impl WindowImpl for AreaSelector { fn close_request(&self) -> glib::Propagation { let obj = self.obj(); obj.save_selection(); self.parent_close_request() } } impl AdwWindowImpl for AreaSelector {} } glib::wrapper! { pub struct AreaSelector(ObjectSubclass) @extends gtk::Widget, gtk::Window, adw::Window, @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Native, gtk::Root, gtk::ShortcutManager; } impl AreaSelector { pub async fn select( fd: RawFd, streams: &[Stream], parent: &impl IsA, ) -> Result { let this: Self = glib::Object::builder() .property("transient-for", parent) .property("modal", true) .build(); let imp = this.imp(); // Setup window size let parent = parent.as_ref(); let surface = parent.surface().context("Parent has no surface")?; let monitor_geometry = RootExt::display(parent) .monitor_at_surface(&surface) .context("No monitor found")? .geometry(); this.set_default_width( (monitor_geometry.width() as f64 * WINDOW_TO_MONITOR_SCALE_FACTOR) as i32, ); this.set_default_height( (monitor_geometry.height() as f64 * WINDOW_TO_MONITOR_SCALE_FACTOR + ASSUMED_HEADER_BAR_HEIGHT) as i32, ); imp.stack.set_visible_child(&imp.loading.get()); let (result_tx, result_rx) = oneshot::channel(); imp.result_tx.replace(Some(result_tx)); // Setup pipeline let pipeline = gst::Pipeline::new(); imp.pipeline.set(pipeline.clone()).unwrap(); let videosrc_bin = pipeline::make_videosrc_bin(fd, streams, PREVIEW_FRAMERATE)?; let gtksink = gst::ElementFactory::make("gtk4paintablesink").build()?; let paintable = gtksink.property::("paintable"); paintable.set_property("use-scaling-filter", true); imp.view_port.set_paintable(Some(paintable.clone())); if paintable .property::>("gl-context") .is_some() { tracing::debug!("Using gl pipeline"); let glsinkbin = gst::ElementFactory::make("glsinkbin") .property("sink", >ksink) .build()?; pipeline.add_many([videosrc_bin.upcast_ref(), &glsinkbin])?; videosrc_bin.link(&glsinkbin)?; } else { tracing::debug!("Falling back to non-gl pipeline"); let videoconvert = gst::ElementFactory::make("videoconvert").build()?; pipeline.add_many([videosrc_bin.upcast_ref(), &videoconvert, >ksink])?; gst::Element::link_many([videosrc_bin.upcast_ref(), &videoconvert, >ksink])?; } let (async_done_tx, async_done_rx) = oneshot::channel(); imp.async_done_tx.replace(Some(async_done_tx)); // Setup bus to receive async done message let bus_watch_guard = pipeline .bus() .unwrap() .add_watch_local(clone!( #[weak] this, #[upgrade_or_panic] move |_, message| this.handle_bus_message(message) )) .unwrap(); imp.bus_watch_guard.set(bus_watch_guard).unwrap(); let state_change = pipeline.set_state(gst::State::Playing)?; if state_change != gst::StateChangeSuccess::Async && let Some(async_done_tx) = imp.async_done_tx.take() { let _ = async_done_tx.send(Ok(())); } this.present(); // Wait for pipeline to be on playing state async_done_rx.await.unwrap()?; // This is enabled by setting `GST_DEBUG_DUMP_DOT_DIR` to a directory (e.g. `GST_DEBUG_DUMP_DOT_DIR=.`). pipeline.debug_to_dot_file_with_ts( gst::DebugGraphDetails::VERBOSE, "kooha-area-selector-pipeline", ); // Get stream size let caps = videosrc_bin .static_pad("src") .context("Videosrc bin has no src pad")? .current_caps() .context("Videosrc bin src pad has no currentcaps")?; let caps_struct = caps .structure(0) .context("Videosrc bin src pad caps has no structure")?; let stream_width = caps_struct.get::("width")?; let stream_height = caps_struct.get::("height")?; imp.stream_size.set((stream_width, stream_height)).unwrap(); this.update_selection_ui(); let (paintable_rect_set_tx, paintable_rect_set_rx) = oneshot::channel(); let paintable_rect_set_tx = RefCell::new(Some(paintable_rect_set_tx)); let handler_id = imp .view_port .connect_paintable_rect_notify(move |view_port| { if view_port.paintable_rect().is_some() && let Some(selection_context_set_tx) = paintable_rect_set_tx.take() { let _ = selection_context_set_tx.send(()); } }); imp.stack.set_visible_child(&imp.view_port.get()); // Wait for view port size to be allocated and paintable_rect to be set paintable_rect_set_rx.await.unwrap(); imp.view_port.disconnect(handler_id); // At this point, the paintable rect and stream size and, thus, the selection context is now set. this.restore_selection(); // Wait for user response result_rx.await.unwrap()?; Ok(SelectAreaData { selection: imp.view_port.selection().unwrap(), paintable_rect: imp.view_port.paintable_rect().unwrap(), stream_size: (stream_width, stream_height), }) } fn selection_context(&self) -> Option { let imp = self.imp(); if let (Some(stream_size), Some(paintable_rect)) = (imp.stream_size.get(), imp.view_port.paintable_rect()) { let selection_context = SelectionContext::new(paintable_rect, *stream_size); debug_assert_ne!( selection_context, Application::get() .settings() .selection_context_default_value() ); Some(selection_context) } else { None } } fn restore_selection(&self) { let imp = self.imp(); let app = Application::get(); let settings = app.settings(); let selection = settings.selection(); if selection != settings.selection_default_value() && self .selection_context() .is_some_and(|selection_context| selection_context == settings.selection_context()) { imp.view_port.set_selection(Some(selection)); } } fn save_selection(&self) { let imp = self.imp(); let app = Application::get(); let settings = app.settings(); if let Some(selection) = imp.view_port.selection() { settings.set_selection(selection); settings.set_selection_context( self.selection_context() .unwrap_or_else(|| settings.selection_context_default_value()), ); } else { settings.reset_selection(); settings.reset_selection_context(); } } fn handle_bus_message(&self, message: &gst::Message) -> glib::ControlFlow { use gst::MessageView; let imp = self.imp(); match message.view() { MessageView::AsyncDone(_) => { if let Some(async_done_tx) = imp.async_done_tx.take() { let _ = async_done_tx.send(Ok(())); } glib::ControlFlow::Continue } MessageView::Eos(_) => { tracing::debug!("Eos signal received from record bus"); glib::ControlFlow::Break } MessageView::StateChanged(sc) => { let new_state = sc.current(); if message.src() != imp .pipeline .get() .map(|pipeline| pipeline.upcast_ref::()) { tracing::trace!( "`{}` changed state from `{:?}` -> `{:?}`", message .src() .map_or_else(|| "".into(), |e| e.name()), sc.old(), new_state, ); return glib::ControlFlow::Continue; } tracing::debug!( "Pipeline changed state from `{:?}` -> `{:?}`", sc.old(), new_state, ); glib::ControlFlow::Continue } MessageView::Error(e) => { tracing::error!("Received error message on bus: {:?}", e); if let Some(async_done_tx) = imp.async_done_tx.take() { let _ = async_done_tx.send(Err(e.error().into())); } glib::ControlFlow::Break } MessageView::Warning(w) => { tracing::warn!("Received warning message on bus: {:?}", w); glib::ControlFlow::Continue } MessageView::Info(i) => { tracing::debug!("Received info message on bus: {:?}", i); glib::ControlFlow::Continue } other => { tracing::trace!("Received other message on bus: {:?}", other); glib::ControlFlow::Continue } } } fn update_selection_ui(&self) { let imp = self.imp(); let view_port = imp.view_port.get(); let selection = view_port.selection(); self.action_set_enabled("area-selector.reset", selection.is_some()); self.action_set_enabled("area-selector.done", selection.is_some()); if selection.is_some() { imp.done_button.grab_focus(); } let (Some(stream_size), Some(selection)) = (imp.stream_size.get(), selection) else { imp.window_title.set_subtitle(""); return; }; let Some(paintable_rect) = view_port.paintable_rect() else { imp.window_title.set_subtitle(""); return; }; let (stream_width, stream_height) = stream_size; let scale_factor_h = *stream_width as f32 / paintable_rect.width(); let scale_factor_v = *stream_height as f32 / paintable_rect.height(); let selection_rect_scaled = selection.rect().scale(scale_factor_h, scale_factor_v); imp.window_title.set_subtitle(&format!( "{}×{} px", selection_rect_scaled.width().round() as i32, selection_rect_scaled.height().round() as i32, )); } } #[cfg(test)] mod tests { use super::*; #[test] fn selection_context_variant() { assert_eq!( SelectionContext::static_variant_type().as_str(), "((dddd)(ii))" ); let original = SelectionContext::new(Rect::new(1.0, 2.0, 3.0, 4.0), (5, 6)); let converted = original.to_variant().get::().unwrap(); assert_eq!(original, converted); } } SeaDve-Kooha-12ed227/src/area_selector/view_port.rs000066400000000000000000000720151505224011700222350ustar00rootroot00000000000000// Based on gnome-shell's screenshot ui (GPLv2). // Source: https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/a3c84ca7463ed92b5be6f013a12bce927223f7c5/js/ui/screenshot.js use gtk::{ gdk, glib::{self, clone}, graphene::{Point, Rect}, gsk::{self, RoundedRect}, prelude::*, subclass::prelude::*, }; use std::{ borrow::Cow, cell::{Cell, RefCell}, fmt, }; // TODO // * Add animation when entering/leaving selection mode. // * Add undo and redo. // * Add minimum selection size. const SIZE: f64 = 100.0; const DEFAULT_SELECTION_SIZE: f32 = 40.0; const SHADE_COLOR: gdk::RGBA = gdk::RGBA::BLACK.with_alpha(0.5); const SELECTION_LINE_WIDTH: f32 = 2.0; const SELECTION_LINE_COLOR: gdk::RGBA = gdk::RGBA::WHITE.with_alpha(0.6); const SELECTION_HANDLE_COLOR: gdk::RGBA = gdk::RGBA::WHITE; const SELECTION_HANDLE_SHADOW_COLOR: gdk::RGBA = gdk::RGBA::BLACK.with_alpha(0.2); const SELECTION_HANDLE_RADIUS: f32 = 12.0; #[derive(Debug, Default, Clone, Copy, PartialEq, Eq)] enum CursorType { #[default] Default, Crosshair, Move, NorthResize, SouthResize, EastResize, WestResize, NorthEastResize, NorthWestResize, SouthEastResize, SouthWestResize, } impl CursorType { fn as_str(self) -> &'static str { match self { Self::Default => "default", Self::Crosshair => "crosshair", Self::Move => "move", Self::NorthResize => "n-resize", Self::SouthResize => "s-resize", Self::EastResize => "e-resize", Self::WestResize => "w-resize", Self::NorthEastResize => "ne-resize", Self::NorthWestResize => "nw-resize", Self::SouthEastResize => "se-resize", Self::SouthWestResize => "sw-resize", } } } #[derive(Clone, Copy, PartialEq, glib::Boxed)] #[boxed_type(name = "KoohaSelection", nullable)] pub struct Selection { start_x: f32, start_y: f32, end_x: f32, end_y: f32, } impl fmt::Debug for Selection { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let rect = self.rect(); f.debug_struct("Selection") .field("x", &rect.x()) .field("y", &rect.y()) .field("width", &rect.width()) .field("height", &rect.height()) .finish() } } impl Selection { fn from_rect(x: f32, y: f32, width: f32, height: f32) -> Self { Self { start_x: x, start_y: y, end_x: x + width, end_y: y + height, } } pub fn left_x(&self) -> f32 { self.start_x.min(self.end_x) } pub fn right_x(&self) -> f32 { self.start_x.max(self.end_x) } pub fn top_y(&self) -> f32 { self.start_y.min(self.end_y) } pub fn bottom_y(&self) -> f32 { self.start_y.max(self.end_y) } pub fn rect(&self) -> Rect { Rect::new( self.left_x(), self.top_y(), (self.start_x - self.end_x).abs(), (self.start_y - self.end_y).abs(), ) } } impl StaticVariantType for Selection { fn static_variant_type() -> Cow<'static, glib::VariantTy> { <(f64, f64, f64, f64)>::static_variant_type() } } impl FromVariant for Selection { fn from_variant(variant: &glib::Variant) -> Option { let (start_x, start_y, end_x, end_y) = variant.get::<(f64, f64, f64, f64)>()?; Some(Self { start_x: start_x as f32, start_y: start_y as f32, end_x: end_x as f32, end_y: end_y as f32, }) } } impl ToVariant for Selection { fn to_variant(&self) -> glib::Variant { ( self.start_x as f64, self.start_y as f64, self.end_x as f64, self.end_y as f64, ) .to_variant() } } impl From for glib::Variant { fn from(selection: Selection) -> glib::Variant { selection.to_variant() } } mod imp { use super::*; #[derive(Debug, Default, glib::Properties, gtk::CompositeTemplate)] #[template(resource = "/io/github/seadve/Kooha/ui/view_port.ui")] #[properties(wrapper_type = super::ViewPort)] pub struct ViewPort { #[property(get, set = Self::set_paintable, explicit_notify, nullable)] pub(super) paintable: RefCell>, #[property(get, set = Self::set_selection, explicit_notify, nullable)] pub(super) selection: Cell>, #[property(get, nullable)] pub(super) paintable_rect: Cell>, pub(super) selection_handles: Cell>, // [top-left, top-right, bottom-right, bottom-left] pub(super) drag_start: Cell>, pub(super) drag_cursor: Cell, pub(super) pointer_position: Cell>, pub(super) handler_ids: RefCell>, } #[glib::object_subclass] impl ObjectSubclass for ViewPort { const NAME: &'static str = "KoohaViewPort"; type Type = super::ViewPort; type ParentType = gtk::Widget; fn class_init(klass: &mut Self::Class) { klass.bind_template(); klass.bind_template_instance_callbacks(); } fn instance_init(obj: &glib::subclass::InitializingObject) { obj.init_template(); } } #[glib::derived_properties] impl ObjectImpl for ViewPort {} impl WidgetImpl for ViewPort { fn request_mode(&self) -> gtk::SizeRequestMode { gtk::SizeRequestMode::HeightForWidth } fn measure(&self, orientation: gtk::Orientation, for_size: i32) -> (i32, i32, i32, i32) { if for_size == 0 { return (0, 0, -1, -1); } let Some(paintable) = self.obj().paintable() else { return (0, 0, -1, -1); }; if orientation == gtk::Orientation::Horizontal { let (natural_width, _) = paintable.compute_concrete_size( 0.0, if for_size < 0 { 0.0 } else { for_size as f64 }, SIZE, SIZE, ); (0, natural_width.ceil() as i32, -1, -1) } else { let (_, natural_height) = paintable.compute_concrete_size( if for_size < 0 { 0.0 } else { for_size as f64 }, 0.0, SIZE, SIZE, ); (0, natural_height.ceil() as i32, -1, -1) } } fn size_allocate(&self, width: i32, height: i32, _baseline: i32) { let obj = self.obj(); let Some(paintable) = obj.paintable() else { self.paintable_rect.set(None); obj.notify_paintable_rect(); return; }; let width = width as f64; let height = height as f64; let ratio = width / height; let paintable_width = paintable.intrinsic_width() as f64; let paintable_height = paintable.intrinsic_height() as f64; let paintable_ratio = paintable.intrinsic_aspect_ratio(); let (rel_paintable_width, rel_paintable_height) = if width >= paintable_width && height >= paintable_height { (paintable_width, paintable_height) } else if paintable_ratio > ratio { (width, width / paintable_ratio) } else { (height * paintable_ratio, height) }; let new_paintable_rect = Rect::new( ((width - rel_paintable_width) / 2.0).floor() as f32, ((height - rel_paintable_height) / 2.0).floor() as f32, rel_paintable_width.ceil() as f32, rel_paintable_height.ceil() as f32, ); let prev_paintable_rect = self.paintable_rect.replace(Some(new_paintable_rect)); obj.notify_paintable_rect(); // Update selection if paintable rect changed. if let Some(prev_paintable_rect) = prev_paintable_rect && let Some(selection) = obj.selection() { let selection_rect = selection.rect(); let scale_x = new_paintable_rect.width() / prev_paintable_rect.width(); let scale_y = new_paintable_rect.height() / prev_paintable_rect.height(); let rel_x = selection_rect.x() - prev_paintable_rect.x(); let rel_y = selection_rect.y() - prev_paintable_rect.y(); obj.set_selection(Some(Selection::from_rect( new_paintable_rect.x() + rel_x * scale_x, new_paintable_rect.y() + rel_y * scale_y, selection_rect.width() * scale_x, selection_rect.height() * scale_y, ))); } } fn snapshot(&self, snapshot: >k::Snapshot) { let obj = self.obj(); if let Some(paintable_rect) = obj.paintable_rect() { snapshot.save(); snapshot.translate(&Point::new(paintable_rect.x(), paintable_rect.y())); let paintable = obj.paintable().unwrap(); paintable.snapshot( snapshot, paintable_rect.width() as f64, paintable_rect.height() as f64, ); snapshot.restore(); } if let Some(selection) = obj.selection() { let selection_rect = selection.rect().round_extents(); // Shades the area outside the selection. if let Some(paintable_rect) = obj.paintable_rect() { snapshot.push_mask(gsk::MaskMode::InvertedAlpha); snapshot.append_color(&gdk::RGBA::BLACK, &selection_rect); snapshot.pop(); snapshot.append_color(&SHADE_COLOR, &paintable_rect); snapshot.pop(); } let path_builder = gsk::PathBuilder::new(); path_builder.add_rect(&selection_rect); snapshot.append_stroke( &path_builder.to_path(), &gsk::Stroke::builder(SELECTION_LINE_WIDTH) .dash(&[10.0, 6.0]) .build(), &SELECTION_LINE_COLOR, ); for handle in self.selection_handles.get().unwrap() { let bounds = RoundedRect::from_rect(handle, SELECTION_HANDLE_RADIUS); snapshot.append_outset_shadow( &bounds, &SELECTION_HANDLE_SHADOW_COLOR, 0.0, 1.0, 2.0, 3.0, ); snapshot.push_rounded_clip(&bounds); snapshot.append_color(&SELECTION_HANDLE_COLOR, &handle); snapshot.pop(); } } } } impl ViewPort { fn set_paintable(&self, paintable: Option) { let obj = self.obj(); if paintable == obj.paintable() { return; } let mut handler_ids = self.handler_ids.borrow_mut(); if let Some(previous_paintable) = self.paintable.replace(paintable.clone()) { for handler_id in handler_ids.drain(..) { previous_paintable.disconnect(handler_id); } } if let Some(paintable) = paintable { handler_ids.push(paintable.connect_invalidate_contents(clone!( #[weak] obj, move |_| { obj.queue_draw(); } ))); handler_ids.push(paintable.connect_invalidate_size(clone!( #[weak] obj, move |_| { obj.queue_resize(); } ))); } self.paintable_rect.set(None); obj.notify_paintable_rect(); obj.queue_resize(); obj.notify_paintable(); } fn set_selection(&self, selection: Option) { let obj = self.obj(); if selection == obj.selection() { return; } self.selection.set(selection); obj.update_selection_handles(); obj.queue_draw(); obj.notify_selection(); } } } glib::wrapper! { pub struct ViewPort(ObjectSubclass) @extends gtk::Widget, @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget; } impl ViewPort { pub fn new() -> Self { glib::Object::new() } fn set_cursor(&self, cursor_type: CursorType) { if self .cursor() .and_then(|cursor| cursor.name()) .is_some_and(|name| name == cursor_type.as_str()) { return; } self.set_cursor_from_name(Some(cursor_type.as_str())); } fn compute_cursor_type(&self, position: Point) -> CursorType { let imp = self.imp(); if self.paintable().is_none() { return CursorType::Default; }; let Some(selection) = self.selection() else { return CursorType::Crosshair; }; let [ top_left_handle, top_right_handle, bottom_right_handle, bottom_left_handle, ] = imp.selection_handles.get().unwrap(); if top_left_handle.contains_point(&position) { CursorType::NorthWestResize } else if top_right_handle.contains_point(&position) { CursorType::NorthEastResize } else if bottom_right_handle.contains_point(&position) { CursorType::SouthEastResize } else if bottom_left_handle.contains_point(&position) { CursorType::SouthWestResize } else if selection.rect().contains_point(&position) { CursorType::Move } else if top_left_handle .union(&top_right_handle) .contains_point(&position) { CursorType::NorthResize } else if top_right_handle .union(&bottom_right_handle) .contains_point(&position) { CursorType::EastResize } else if bottom_right_handle .union(&bottom_left_handle) .contains_point(&position) { CursorType::SouthResize } else if bottom_left_handle .union(&top_left_handle) .contains_point(&position) { CursorType::WestResize } else { CursorType::Crosshair } } fn update_selection_handles(&self) { let imp = self.imp(); let Some(selection) = self.selection() else { imp.selection_handles.set(None); return; }; let selection_handle_diameter = SELECTION_HANDLE_RADIUS * 2.0; let top_left = Rect::new( selection.left_x() - SELECTION_HANDLE_RADIUS, selection.top_y() - SELECTION_HANDLE_RADIUS, selection_handle_diameter, selection_handle_diameter, ); let top_right = Rect::new( selection.right_x() - SELECTION_HANDLE_RADIUS, selection.top_y() - SELECTION_HANDLE_RADIUS, selection_handle_diameter, selection_handle_diameter, ); let bottom_right = Rect::new( selection.right_x() - SELECTION_HANDLE_RADIUS, selection.bottom_y() - SELECTION_HANDLE_RADIUS, selection_handle_diameter, selection_handle_diameter, ); let bottom_left = Rect::new( selection.left_x() - SELECTION_HANDLE_RADIUS, selection.bottom_y() - SELECTION_HANDLE_RADIUS, selection_handle_diameter, selection_handle_diameter, ); imp.selection_handles.set(Some([ top_left.round_extents(), top_right.round_extents(), bottom_right.round_extents(), bottom_left.round_extents(), ])); } } #[gtk::template_callbacks] impl ViewPort { #[template_callback] fn enter(&self, x: f64, y: f64) { let imp = self.imp(); imp.pointer_position .set(Some(Point::new(x as f32, y as f32))); } #[template_callback] fn motion(&self, x: f64, y: f64) { let imp = self.imp(); imp.pointer_position .set(Some(Point::new(x as f32, y as f32))); if imp.drag_start.get().is_none() { let cursor_type = self.compute_cursor_type(Point::new(x as f32, y as f32)); self.set_cursor(cursor_type); } } #[template_callback] fn leave(&self) { let imp = self.imp(); imp.pointer_position.set(None); self.set_cursor(CursorType::Default); } #[template_callback] fn drag_begin(&self, x: f64, y: f64) { tracing::trace!("Drag begin at ({}, {})", x, y); let Some(paintable_rect) = self.paintable_rect() else { return; }; let imp = self.imp(); let cursor_type = self.compute_cursor_type(Point::new(x as f32, y as f32)); if cursor_type == CursorType::Crosshair { imp.drag_cursor.set(CursorType::Crosshair); self.set_cursor(CursorType::Crosshair); let x = (x as f32).clamp( paintable_rect.x(), paintable_rect.x() + paintable_rect.width(), ); let y = (y as f32).clamp( paintable_rect.y(), paintable_rect.y() + paintable_rect.height(), ); self.set_selection(Some(Selection { start_x: x, start_y: y, end_x: x, end_y: y, })); } else { imp.drag_cursor.set(cursor_type); imp.drag_start.set(Some(Point::new(x as f32, y as f32))); let selection = self.selection().unwrap(); let mut new_selection = selection; if cursor_type == CursorType::Move { new_selection.start_x = selection.left_x(); new_selection.start_y = selection.top_y(); new_selection.end_x = selection.right_x(); new_selection.end_y = selection.bottom_y(); } if matches!( cursor_type, CursorType::NorthWestResize | CursorType::WestResize | CursorType::SouthWestResize ) { new_selection.start_x = selection.right_x(); new_selection.end_x = selection.left_x(); } if matches!( cursor_type, CursorType::NorthEastResize | CursorType::EastResize | CursorType::SouthEastResize ) { new_selection.start_x = selection.left_x(); new_selection.end_x = selection.right_x(); } if matches!( cursor_type, CursorType::NorthWestResize | CursorType::NorthResize | CursorType::NorthEastResize ) { new_selection.start_y = selection.bottom_y(); new_selection.end_y = selection.top_y(); } if matches!( cursor_type, CursorType::SouthWestResize | CursorType::SouthResize | CursorType::SouthEastResize ) { new_selection.start_y = selection.top_y(); new_selection.end_y = selection.bottom_y(); } self.set_selection(Some(new_selection)); } } #[template_callback] fn drag_update(&self, _dx: f64, _dy: f64) { let Some(paintable_rect) = self.paintable_rect() else { return; }; let imp = self.imp(); let pointer_position = imp.pointer_position.get().unwrap(); let drag_cursor = imp.drag_cursor.get(); if drag_cursor == CursorType::Crosshair { let Selection { start_x, start_y, .. } = self.selection().unwrap(); self.set_selection(Some(Selection { start_x, start_y, end_x: pointer_position.x().clamp( paintable_rect.x(), paintable_rect.width() + paintable_rect.x(), ), end_y: pointer_position.y().clamp( paintable_rect.y(), paintable_rect.height() + paintable_rect.y(), ), })); } else { let drag_start = imp.drag_start.get().unwrap(); let mut dx = pointer_position.x() - drag_start.x(); let mut dy = pointer_position.y() - drag_start.y(); if drag_cursor == CursorType::Move { let Selection { start_x, start_y, end_x, end_y, } = self.selection().unwrap(); let mut new_start_x = start_x + dx; let mut new_start_y = start_y + dy; let mut new_end_x = end_x + dx; let mut new_end_y = end_y + dy; let mut overshoot_x = 0.0; let mut overshoot_y = 0.0; let selection_rect = self.selection().unwrap().rect(); // Keep the size intact if we bumped to the paintable rect. if new_start_x < paintable_rect.x() { overshoot_x = paintable_rect.x() - new_start_x; new_start_x = paintable_rect.x(); new_end_x = new_start_x + selection_rect.width(); } else if new_end_x > paintable_rect.width() + paintable_rect.x() { overshoot_x = paintable_rect.width() + paintable_rect.x() - new_end_x; new_end_x = paintable_rect.width() + paintable_rect.x(); new_start_x = new_end_x - selection_rect.width(); } if new_start_y < paintable_rect.y() { overshoot_y = paintable_rect.y() - new_start_y; new_start_y = paintable_rect.y(); new_end_y = new_start_y + selection_rect.height(); } else if new_end_y > paintable_rect.height() + paintable_rect.y() { overshoot_y = paintable_rect.height() + paintable_rect.y() - new_end_y; new_end_y = paintable_rect.height() + paintable_rect.y(); new_start_y = new_end_y - selection_rect.height(); } dx += overshoot_x; dy += overshoot_y; self.set_selection(Some(Selection { start_x: new_start_x, start_y: new_start_y, end_x: new_end_x, end_y: new_end_y, })); } else { if matches!(drag_cursor, CursorType::WestResize | CursorType::EastResize) { dy = 0.0; } if matches!( drag_cursor, CursorType::NorthResize | CursorType::SouthResize ) { dx = 0.0; } let mut new_selection = self.selection().unwrap(); new_selection.end_x += dx; if new_selection.end_x >= paintable_rect.width() + paintable_rect.x() { dx -= new_selection.end_x - (paintable_rect.width() + paintable_rect.x()); new_selection.end_x = paintable_rect.width() + paintable_rect.x(); } else if new_selection.end_x < paintable_rect.x() { dx -= new_selection.end_x - paintable_rect.x(); new_selection.end_x = paintable_rect.x(); } new_selection.end_y += dy; if new_selection.end_y >= paintable_rect.height() + paintable_rect.y() { dy -= new_selection.end_y - (paintable_rect.height() + paintable_rect.y()); new_selection.end_y = paintable_rect.height() + paintable_rect.y(); } else if new_selection.end_y < paintable_rect.y() { dy -= new_selection.end_y - paintable_rect.y(); new_selection.end_y = paintable_rect.y(); } self.set_selection(Some(new_selection)); let selection = new_selection; // If we drag the handle past a selection side, update which // handles are which. if selection.end_x > selection.start_x { if drag_cursor == CursorType::NorthWestResize { imp.drag_cursor.set(CursorType::NorthEastResize); } else if drag_cursor == CursorType::SouthWestResize { imp.drag_cursor.set(CursorType::SouthEastResize); } else if drag_cursor == CursorType::WestResize { imp.drag_cursor.set(CursorType::EastResize); } } else if drag_cursor == CursorType::NorthEastResize { imp.drag_cursor.set(CursorType::NorthWestResize); } else if drag_cursor == CursorType::SouthEastResize { imp.drag_cursor.set(CursorType::SouthWestResize); } else if drag_cursor == CursorType::EastResize { imp.drag_cursor.set(CursorType::WestResize); } if selection.end_y > selection.start_y { if drag_cursor == CursorType::NorthWestResize { imp.drag_cursor.set(CursorType::SouthWestResize); } else if drag_cursor == CursorType::NorthEastResize { imp.drag_cursor.set(CursorType::SouthEastResize); } else if drag_cursor == CursorType::NorthResize { imp.drag_cursor.set(CursorType::SouthResize); } } else if drag_cursor == CursorType::SouthWestResize { imp.drag_cursor.set(CursorType::NorthWestResize); } else if drag_cursor == CursorType::SouthEastResize { imp.drag_cursor.set(CursorType::NorthEastResize); } else if drag_cursor == CursorType::SouthResize { imp.drag_cursor.set(CursorType::NorthResize); } self.set_cursor(imp.drag_cursor.get()); } imp.drag_start .set(Some(Point::new(drag_start.x() + dx, drag_start.y() + dy))); } } #[template_callback] fn drag_end(&self, dx: f64, dy: f64) { tracing::trace!("Drag end offset ({}, {})", dx, dy); let Some(paintable_rect) = self.paintable_rect() else { return; }; let imp = self.imp(); imp.drag_start.set(None); // The user clicked without dragging. Make up a larger selection // to reduce confusion. if let Some(mut selection) = self.selection() && imp.drag_cursor.get() == CursorType::Crosshair && selection.end_x == selection.start_x && selection.end_y == selection.start_y { let offset = DEFAULT_SELECTION_SIZE / 2.0; selection.start_x -= offset; selection.start_y -= offset; selection.end_x += offset; selection.end_y += offset; let selection_rect = selection.rect(); // Keep the coordinates inside the paintable rect. if selection.start_x < paintable_rect.x() { selection.start_x = paintable_rect.x(); selection.end_x = selection.start_x + selection_rect.width(); } else if selection.end_x > paintable_rect.width() + paintable_rect.x() { selection.end_x = paintable_rect.width() + paintable_rect.x(); selection.start_x = selection.end_x - selection_rect.width(); } if selection.start_y < paintable_rect.y() { selection.start_y = paintable_rect.y(); selection.end_y = selection.start_y + selection_rect.height(); } else if selection.end_y > paintable_rect.height() + paintable_rect.y() { selection.end_y = paintable_rect.height() + paintable_rect.y(); selection.start_y = selection.end_y - selection_rect.height(); } self.set_selection(Some(selection)); } if let Some(pointer_position) = imp.pointer_position.get() { let cursor_type = self.compute_cursor_type(pointer_position); self.set_cursor(cursor_type); } } } #[cfg(test)] mod tests { use super::*; #[test] fn selection_variant() { let original = Selection::from_rect(1.0, 2.0, 3.0, 4.0); let converted = original.to_variant().get::().unwrap(); assert_eq!(original, converted); } } SeaDve-Kooha-12ed227/src/cancelled.rs000066400000000000000000000006031505224011700173130ustar00rootroot00000000000000use std::{error, fmt}; #[derive(Debug)] pub struct Cancelled { task: String, } impl Cancelled { pub fn new(task: impl Into) -> Self { Cancelled { task: task.into() } } } impl fmt::Display for Cancelled { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Cancelled {}", self.task) } } impl error::Error for Cancelled {} SeaDve-Kooha-12ed227/src/config.rs.in000066400000000000000000000005061505224011700172550ustar00rootroot00000000000000pub const APP_ID: &str = @APP_ID@; pub const GETTEXT_PACKAGE: &str = @GETTEXT_PACKAGE@; pub const LOCALEDIR: &str = @LOCALEDIR@; pub const PKGDATADIR: &str = @PKGDATADIR@; pub const PROFILE: &str = @PROFILE@; pub const RESOURCES_FILE: &str = concat!(@PKGDATADIR@, "/resources.gresource"); pub const VERSION: &str = @VERSION@; SeaDve-Kooha-12ed227/src/device.rs000066400000000000000000000032111505224011700166360ustar00rootroot00000000000000use anyhow::{Context, Result, anyhow, ensure}; use gettextrs::gettext; use gst::prelude::*; use crate::help::ContextWithHelp; #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum DeviceClass { Source, Sink, } impl DeviceClass { fn as_str(self) -> &'static str { match self { Self::Source => "Audio/Source", Self::Sink => "Audio/Sink", } } } pub fn find_default(class: DeviceClass) -> Result { let provider = gst::DeviceProviderFactory::by_name("pulsedeviceprovider").with_context(|| { ContextWithHelp::new( gettext("Failed to find the default audio device"), gettext("Make sure that you have PulseAudio installed in your system."), ) })?; provider.start()?; let devices = provider.devices(); provider.stop(); tracing::debug!("Finding device name for class `{:?}`", class); for device in devices { if let Err(err) = validate_device(&device, class) { tracing::debug!("Skipping device `{}`: {:?}", device.name(), err); continue; } return Ok(device); } Err(anyhow!("Failed to find a default device")) } fn validate_device(device: &gst::Device, class: DeviceClass) -> Result<()> { ensure!( device.has_classes(class.as_str()), "Unknown device class `{}`", device.device_class() ); let is_default = device .properties() .context("No properties")? .get::("is-default") .context("No `is-default` property")?; ensure!(is_default, "Not the default device"); Ok(()) } SeaDve-Kooha-12ed227/src/experimental.rs000066400000000000000000000027571505224011700201120ustar00rootroot00000000000000use std::{env, sync::OnceLock}; pub fn enabled_features() -> &'static [Feature] { static ENABLED_FEATURES: OnceLock> = OnceLock::new(); ENABLED_FEATURES.get_or_init(|| { env::var("KOOHA_EXPERIMENTAL") .map(|val| { val.split(',') .filter_map(|raw_feature_str| { let feature_str = raw_feature_str.trim().to_lowercase(); let feature = Feature::from_str(&feature_str); if feature.is_none() { tracing::warn!("Unknown `{}` experimental feature", feature_str); } feature }) .collect::>() }) .unwrap_or_default() }) } #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum Feature { All, ExperimentalFormats, MultipleVideoSources, WindowRecording, } impl Feature { fn from_str(string: &str) -> Option { match string { "all" | "1" => Some(Self::All), "experimental-formats" => Some(Self::ExperimentalFormats), "multiple-video-sources" => Some(Self::MultipleVideoSources), "window-recording" => Some(Self::WindowRecording), _ => None, } } pub fn is_enabled(self) -> bool { let enabled_features = enabled_features(); enabled_features.contains(&Self::All) || enabled_features.contains(&self) } } SeaDve-Kooha-12ed227/src/format.rs000066400000000000000000000102231505224011700166700ustar00rootroot00000000000000use crate::i18n::ngettext_f; /// Formats a framerate in a more human-readable format. pub fn framerate(framerate: gst::Fraction) -> String { let reduced = framerate.reduced(); if reduced.is_integer() { return reduced.numer().to_string(); } let float = *reduced.numer() as f64 / *reduced.denom() as f64; format!("{:.2}", float) } /// Formats time in MM:SS. /// /// The MM part will be more than 2 digits if the time is >= 100 minutes. pub fn digital_clock(clock_time: gst::ClockTime) -> String { let secs = clock_time.seconds(); let seconds_display = secs % 60; let minutes_display = secs / 60; format!("{:02}∶{:02}", minutes_display, seconds_display) } /// Formats time as duration. pub fn duration(clock_time: gst::ClockTime) -> String { let secs = clock_time.seconds(); let hours_display = secs / 3600; let minutes_display = (secs % 3600) / 60; let seconds_display = secs % 60; let hours_display_str = ngettext_f( // Translators: Do NOT translate the contents between '{' and '}', this is a variable name. "{time} hour", "{time} hours", hours_display as u32, &[("time", &hours_display.to_string())], ); let minutes_display_str = ngettext_f( // Translators: Do NOT translate the contents between '{' and '}', this is a variable name. "{time} minute", "{time} minutes", minutes_display as u32, &[("time", &minutes_display.to_string())], ); let seconds_display_str = ngettext_f( // Translators: Do NOT translate the contents between '{' and '}', this is a variable name. "{time} second", "{time} seconds", seconds_display as u32, &[("time", &seconds_display.to_string())], ); if hours_display > 0 { // 4 hours 5 minutes 6 seconds format!( "{} {} {}", hours_display_str, minutes_display_str, seconds_display_str ) } else if minutes_display > 0 { // 5 minutes 6 seconds format!("{} {}", minutes_display_str, seconds_display_str) } else { // 6 seconds seconds_display_str } } #[cfg(test)] mod tests { use super::*; #[test] fn test_framerate() { assert_eq!(framerate(gst::Fraction::from_integer(24)), "24"); assert_eq!(framerate(gst::Fraction::new(30_000, 1001)), "29.97"); assert_eq!(framerate(gst::Fraction::new(60_000, 1001)), "59.94"); } #[test] fn test_duration() { assert_eq!(duration(gst::ClockTime::ZERO), "0 seconds"); assert_eq!(duration(gst::ClockTime::from_seconds(1)), "1 second"); assert_eq!( duration(gst::ClockTime::from_seconds(3 * 60 + 4)), "3 minutes 4 seconds" ); assert_eq!( duration(gst::ClockTime::from_seconds(60 * 60 + 6)), "1 hour 0 minutes 6 seconds" ); assert_eq!( duration(gst::ClockTime::from_seconds(2 * 60 * 60)), "2 hours 0 minutes 0 seconds" ); } #[test] fn digital_clock_less_than_1_hour() { assert_eq!(digital_clock(gst::ClockTime::ZERO), "00∶00"); assert_eq!(digital_clock(gst::ClockTime::from_seconds(31)), "00∶31"); assert_eq!( digital_clock(gst::ClockTime::from_seconds(8 * 60 + 1)), "08∶01" ); assert_eq!( digital_clock(gst::ClockTime::from_seconds(33 * 60 + 3)), "33∶03" ); assert_eq!( digital_clock(gst::ClockTime::from_seconds(59 * 60 + 59)), "59∶59" ); } #[test] fn digital_clock_more_than_1_hour() { assert_eq!( digital_clock(gst::ClockTime::from_seconds(60 * 60)), "60∶00" ); assert_eq!( digital_clock(gst::ClockTime::from_seconds(60 * 60 + 9)), "60∶09" ); assert_eq!( digital_clock(gst::ClockTime::from_seconds(60 * 60 + 31)), "60∶31" ); assert_eq!( digital_clock(gst::ClockTime::from_seconds(100 * 60 + 20)), "100∶20" ); } } SeaDve-Kooha-12ed227/src/help.rs000066400000000000000000000010721505224011700163320ustar00rootroot00000000000000use std::fmt; #[derive(Debug)] pub struct ContextWithHelp { context: String, help_message: String, } impl ContextWithHelp { pub fn new(context: impl Into, help_message: impl Into) -> Self { ContextWithHelp { context: context.into(), help_message: help_message.into(), } } pub fn help_message(&self) -> &str { &self.help_message } } impl fmt::Display for ContextWithHelp { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.write_str(&self.context) } } SeaDve-Kooha-12ed227/src/i18n.rs000066400000000000000000000110121505224011700161540ustar00rootroot00000000000000// Copied from Fractal GPLv3 // See https://gitlab.gnome.org/GNOME/fractal/-/blob/c0bc4078bb2cdd511c89fdf41a51275db90bb7ab/src/i18n.rs use gettextrs::{gettext, ngettext}; /// Like `gettext`, but replaces named variables using the given key-value tuples. /// /// The expected format to replace is `{name}`, where `name` is the first string /// in a key-value tuple. pub fn gettext_f(msgid: &str, args: &[(&str, &str)]) -> String { let s = gettext(msgid); freplace(s, args) } /// Like `ngettext`, but replaces named variables using the given key-value tuples. /// /// The expected format to replace is `{name}`, where `name` is the first string /// in a key-value tuple. pub fn ngettext_f(msgid: &str, msgid_plural: &str, n: u32, args: &[(&str, &str)]) -> String { let s = ngettext(msgid, msgid_plural, n); freplace(s, args) } /// Replace variables in the given string using the given key-value tuples. /// /// The expected format to replace is `{name}`, where `name` is the first string /// in a key-value tuple. fn freplace(s: String, args: &[(&str, &str)]) -> String { // This function is useless if there are no arguments debug_assert!(!args.is_empty(), "atleast one key-value pair must be given"); // We could check here if all keys were used, but some translations might // not use all variables, so we don't do that. let mut s = s; for (key, val) in args { s = s.replace(&format!("{{{key}}}"), val); } debug_assert!(!s.contains('{'), "all format variables must be replaced"); if tracing::enabled!(tracing::Level::WARN) && s.contains('{') { tracing::warn!( "all format variables must be replaced, but some were not: {}", s ); } s } #[cfg(test)] mod tests { use super::*; #[test] #[should_panic = "atleast one key-value pair must be given"] fn freplace_no_args() { gettext_f("no args", &[]); } #[test] #[should_panic = "all format variables must be replaced"] fn freplace_missing_key() { gettext_f("missing {one}", &[("two", "2")]); } #[test] fn gettext_f_simple() { assert_eq!(gettext_f("no replace", &[("one", "1")]), "no replace"); assert_eq!(gettext_f("{one} param", &[("one", "1")]), "1 param"); assert_eq!( gettext_f("middle {one} param", &[("one", "1")]), "middle 1 param" ); assert_eq!(gettext_f("end {one}", &[("one", "1")]), "end 1"); } #[test] fn gettext_f_multiple() { assert_eq!( gettext_f("multiple {one} and {two}", &[("one", "1"), ("two", "2")]), "multiple 1 and 2" ); assert_eq!( gettext_f("multiple {two} and {one}", &[("one", "1"), ("two", "2")]), "multiple 2 and 1" ); assert_eq!( gettext_f("multiple {one} and {one}", &[("one", "1"), ("two", "2")]), "multiple 1 and 1" ); } #[test] fn ngettext_f_multiple() { assert_eq!( ngettext_f( "singular {one} and {two}", "plural {one} and {two}", 1, &[("one", "1"), ("two", "two")], ), "singular 1 and two" ); assert_eq!( ngettext_f( "singular {one} and {two}", "plural {one} and {two}", 2, &[("one", "1"), ("two", "two")], ), "plural 1 and two" ); } #[test] fn ngettext_f_unused_on_singular() { assert_eq!( ngettext_f( "singular {one}", "plural {one} and {two}", 1, &[("one", "1"), ("two", "2")], ), "singular 1" ); assert_eq!( ngettext_f( "singular {one}", "plural {one} and {two}", 2, &[("one", "1"), ("two", "2")], ), "plural 1 and 2" ); } #[test] fn ngettext_f_unused_on_plural() { assert_eq!( ngettext_f( "singular {one} and {two}", "plural {one}", 1, &[("one", "1"), ("two", "2")], ), "singular 1 and 2" ); assert_eq!( ngettext_f( "singular {one} and {two}", "plural {one}", 2, &[("one", "1"), ("two", "2")], ), "plural 1" ); } } SeaDve-Kooha-12ed227/src/item_row.rs000066400000000000000000000126161505224011700172350ustar00rootroot00000000000000use gtk::{glib, prelude::*, subclass::prelude::*}; mod imp { use std::cell::{Cell, RefCell}; use super::*; #[derive(Default, glib::Properties, gtk::CompositeTemplate)] #[properties(wrapper_type = super::ItemRow)] #[template(resource = "/io/github/seadve/Kooha/ui/item_row.ui")] pub struct ItemRow { #[property(get, set = Self::set_title, explicit_notify)] pub(super) title: RefCell, #[property(get, set = Self::set_warning_tooltip_text, explicit_notify)] pub(super) warning_tooltip_text: RefCell, #[property(get, set = Self::set_shows_warning_icon, explicit_notify)] pub(super) shows_warning_icon: Cell, #[property(get, set = Self::set_is_on_popover, explicit_notify)] pub(super) is_on_popover: Cell, #[property(get, set = Self::set_is_selected, explicit_notify)] pub(super) is_selected: Cell, #[template_child] pub(super) start_warning_icon: TemplateChild, #[template_child] pub(super) title_label: TemplateChild, #[template_child] pub(super) selected_icon: TemplateChild, #[template_child] pub(super) end_warning_icon: TemplateChild, } #[glib::object_subclass] impl ObjectSubclass for ItemRow { const NAME: &'static str = "KoohaItemRow"; type Type = super::ItemRow; type ParentType = gtk::Widget; fn class_init(klass: &mut Self::Class) { klass.bind_template(); } fn instance_init(obj: &glib::subclass::InitializingObject) { obj.init_template(); } } #[glib::derived_properties] impl ObjectImpl for ItemRow { fn constructed(&self) { self.parent_constructed(); let obj = self.obj(); obj.update_title_label(); obj.update_warning_icon_tooltip_text(); obj.update_warning_icons_visibility(); obj.update_selected_icon_visibility(); obj.update_selected_icon_opacity(); } fn dispose(&self) { self.dispose_template(); } } impl WidgetImpl for ItemRow {} impl ItemRow { fn set_title(&self, title: String) { let obj = self.obj(); if title == obj.title() { return; } self.title.replace(title); obj.update_title_label(); obj.notify_title(); } fn set_warning_tooltip_text(&self, warning_tooltip_text: String) { let obj = self.obj(); if warning_tooltip_text == obj.warning_tooltip_text() { return; } self.warning_tooltip_text.replace(warning_tooltip_text); obj.update_warning_icon_tooltip_text(); obj.notify_warning_tooltip_text(); } fn set_shows_warning_icon(&self, shows_warning_icon: bool) { let obj = self.obj(); if shows_warning_icon == obj.shows_warning_icon() { return; } self.shows_warning_icon.set(shows_warning_icon); obj.update_warning_icons_visibility(); obj.notify_shows_warning_icon(); } fn set_is_on_popover(&self, is_on_popover: bool) { let obj = self.obj(); if is_on_popover == obj.is_on_popover() { return; } self.is_on_popover.set(is_on_popover); obj.update_selected_icon_visibility(); obj.update_warning_icons_visibility(); obj.notify_is_on_popover(); } fn set_is_selected(&self, is_selected: bool) { let obj = self.obj(); if is_selected == obj.is_selected() { return; } self.is_selected.set(is_selected); obj.update_selected_icon_opacity(); obj.notify_is_selected(); } } } glib::wrapper! { pub struct ItemRow(ObjectSubclass) @extends gtk::Widget, @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget; } impl ItemRow { pub fn new() -> Self { glib::Object::new() } fn update_title_label(&self) { let imp = self.imp(); imp.title_label.set_label(&self.title()); } fn update_warning_icon_tooltip_text(&self) { let imp = self.imp(); let warning_tooltip_text = Some(self.warning_tooltip_text()).filter(|s| !s.is_empty()); imp.start_warning_icon .set_tooltip_text(warning_tooltip_text.as_deref()); imp.end_warning_icon .set_tooltip_text(warning_tooltip_text.as_deref()); } fn update_warning_icons_visibility(&self) { let imp = self.imp(); let is_on_popover = self.is_on_popover(); let shows_warning_icon = self.shows_warning_icon(); imp.start_warning_icon .set_visible(shows_warning_icon && !is_on_popover); imp.end_warning_icon .set_visible(shows_warning_icon && is_on_popover); } fn update_selected_icon_visibility(&self) { let imp = self.imp(); imp.selected_icon.set_visible(self.is_on_popover()); } fn update_selected_icon_opacity(&self) { let imp = self.imp(); let opacity = if self.is_selected() { 1.0 } else { 0.0 }; imp.selected_icon.set_opacity(opacity); } } SeaDve-Kooha-12ed227/src/main.rs000066400000000000000000000035611505224011700163330ustar00rootroot00000000000000#![allow(clippy::new_without_default)] #![warn( rust_2018_idioms, clippy::items_after_statements, clippy::needless_pass_by_value, clippy::explicit_iter_loop, clippy::semicolon_if_nothing_returned, clippy::match_wildcard_for_single_variants, clippy::inefficient_to_string, clippy::map_unwrap_or, clippy::implicit_clone, clippy::struct_excessive_bools, clippy::trivially_copy_pass_by_ref, clippy::unreadable_literal, clippy::if_not_else, clippy::doc_markdown, clippy::unused_async, clippy::default_trait_access, clippy::unnecessary_wraps, clippy::unused_self, clippy::dbg_macro, clippy::todo, clippy::print_stdout )] mod about; mod application; mod area_selector; mod cancelled; mod config; mod device; mod experimental; mod format; mod help; mod i18n; mod item_row; mod pipeline; mod preferences_dialog; mod profile; mod recording; mod screencast_portal; mod settings; mod timer; mod window; use gettextrs::{LocaleCategory, gettext}; use gtk::{gio, glib}; use self::{ application::Application, config::{GETTEXT_PACKAGE, LOCALEDIR, RESOURCES_FILE}, }; fn main() -> glib::ExitCode { tracing_subscriber::fmt::init(); gettextrs::setlocale(LocaleCategory::LcAll, ""); gettextrs::bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR).expect("Unable to bind the text domain."); gettextrs::textdomain(GETTEXT_PACKAGE).expect("Unable to switch to the text domain."); glib::set_application_name(&gettext("Kooha")); gst::init().expect("Unable to start gstreamer."); gstgif::plugin_register_static().expect("Failed to register gif plugin."); gstgtk4::plugin_register_static().expect("Failed to register gtk4 plugin."); let res = gio::Resource::load(RESOURCES_FILE).expect("Could not load gresource file."); gio::resources_register(&res); let app = Application::new(); app.run() } SeaDve-Kooha-12ed227/src/meson.build000066400000000000000000000034271505224011700172040ustar00rootroot00000000000000global_conf = configuration_data() global_conf.set_quoted('APP_ID', application_id) global_conf.set_quoted('PKGDATADIR', pkgdatadir) global_conf.set_quoted('PROFILE', profile) global_conf.set_quoted('VERSION', version + version_suffix) global_conf.set_quoted('GETTEXT_PACKAGE', gettext_package) global_conf.set_quoted('LOCALEDIR', localedir) configure_file( input: 'config.rs.in', output: 'config.rs', configuration: global_conf ) # Copy the config.rs output to the source directory. run_command( 'cp', meson.project_build_root() / 'src' / 'config.rs', meson.project_source_root() / 'src' / 'config.rs', check: true ) cargo_options = [ '--manifest-path', meson.project_source_root() / 'Cargo.toml' ] cargo_options += [ '--target-dir', meson.project_build_root() / 'src' ] if get_option('profile') == 'default' cargo_options += [ '--release' ] rust_target = 'release' message('Building in release mode') else rust_target = 'debug' message('Building in debug mode') endif cargo_env = [ 'CARGO_HOME=' + meson.project_build_root() / 'cargo-home' ] custom_target( 'cargo-build', build_by_default: true, build_always_stale: true, output: meson.project_name(), console: true, install: true, install_dir: bindir, depends: resources, command: [ 'env', cargo_env, cargo, 'build', cargo_options, '&&', 'cp', 'src' / rust_target / meson.project_name(), '@OUTPUT@', ] ) test( 'cargo-test', cargo, args: [ 'test', cargo_options, '--', '--nocapture', ], env: [ 'RUST_BACKTRACE=1', cargo_env ], timeout: 300, # give cargo more time ) test( 'cargo-clippy', cargo, args: [ 'clippy', cargo_options, '--', '-D', 'warnings' ], env: [ cargo_env ], timeout: 300, # give cargo more time ) SeaDve-Kooha-12ed227/src/pipeline.rs000066400000000000000000000353061505224011700172160ustar00rootroot00000000000000use anyhow::{Context, Ok, Result, bail, ensure}; use gst::prelude::*; use gtk::graphene::Rect; use std::{os::unix::io::RawFd, path::PathBuf}; use crate::{ area_selector::SelectAreaData, device::{self, DeviceClass}, profile::Profile, screencast_portal::Stream, }; const AUDIO_SAMPLE_RATE: i32 = 48_000; #[derive(Debug)] #[must_use] pub struct PipelineBuilder { file_path: PathBuf, framerate: gst::Fraction, profile: Profile, fd: RawFd, streams: Vec, record_desktop_audio: bool, record_microphone: bool, select_area_data: Option, } impl PipelineBuilder { pub fn new( file_path: PathBuf, framerate: gst::Fraction, profile: Profile, fd: RawFd, streams: Vec, ) -> Self { Self { file_path, framerate, profile, fd, streams, record_desktop_audio: false, record_microphone: false, select_area_data: None, } } pub fn record_desktop_audio(&mut self, record_desktop_audio: bool) -> &mut Self { self.record_desktop_audio = record_desktop_audio; self } pub fn record_microphone(&mut self, record_microphone: bool) -> &mut Self { self.record_microphone = record_microphone; self } pub fn select_area_data(&mut self, data: SelectAreaData) -> &mut Self { self.select_area_data = Some(data); self } /// Builds the pipeline. /// /// (If has select_area_data) /// | | /// v v /// pipewiresrc-bin -> videoscale -> videocrop -> queue -> | /// | -> profile.attach -> filesink /// pulsesrc-bin -> queue -> | pub fn build(&self) -> Result { tracing::debug!( file_path = %self.file_path.display(), framerate = ?self.framerate, profile = ?self.profile.id(), fd = self.fd, stream_len = self.streams.len(), streams = ?self.streams, record_desktop_audio = ?self.record_desktop_audio, record_microphone = ?self.record_microphone, select_area_data = ?self.select_area_data, ); let pipeline = gst::Pipeline::new(); let videosrc_bin = make_videosrc_bin(self.fd, &self.streams, self.framerate) .context("Failed to create videosrc bin")?; let videoenc_queue = gst::ElementFactory::make("queue") .name("kooha-videoenc-queue") .build()?; let filesink = gst::ElementFactory::make("filesink") .property( "location", self.file_path .to_str() .context("Could not convert file path to string")?, ) .build()?; pipeline.add_many([videosrc_bin.upcast_ref(), &videoenc_queue, &filesink])?; if let Some(ref data) = self.select_area_data { let videoscale = gst::ElementFactory::make("videoscale").build()?; let videocrop = make_videocrop(data)?; pipeline.add_many([&videoscale, &videocrop])?; // x264enc requires even resolution. let (stream_width, stream_height) = data.stream_size; let videoscale_caps = gst::Caps::builder("video/x-raw") .field("width", round_to_even(stream_width)) .field("height", round_to_even(stream_height)) .build(); videosrc_bin.link(&videoscale)?; videoscale.link_filtered(&videocrop, &videoscale_caps)?; videocrop.link(&videoenc_queue)?; } else { videosrc_bin.link(&videoenc_queue)?; } let audioenc_queue = if self.record_desktop_audio || self.record_microphone { debug_assert!(self.profile.supports_audio()); let pulsesrcs = [ self.record_desktop_audio .then(|| make_pulsesrc(DeviceClass::Sink, "kooha-desktop-audio-src")), self.record_microphone .then(|| make_pulsesrc(DeviceClass::Source, "kooha-microphone-src")), ]; let audiosrc_bin = make_audiosrc_bin( &pulsesrcs .into_iter() .flatten() .collect::>>()?, ) .context("Failed to create audiosrc bin")?; let audioenc_queue = gst::ElementFactory::make("queue") .name("kooha-audioenc-queue") .build()?; pipeline.add_many([audiosrc_bin.upcast_ref(), &audioenc_queue])?; audiosrc_bin.link(&audioenc_queue)?; Some(audioenc_queue) } else { None }; self.profile .attach( &pipeline, &videoenc_queue, audioenc_queue.as_ref(), &filesink, ) .with_context(|| { format!( "Failed to attach profile `{}` to pipeline", self.profile.id() ) })?; Ok(pipeline) } } fn make_pipewiresrc(fd: RawFd, path: &str) -> Result { let src = gst::ElementFactory::make("pipewiresrc") .property("fd", fd) .property("path", path) .property("do-timestamp", true) .property("keepalive-time", 1000) .property("resend-last", true) .build()?; Ok(src) } fn make_videoflip() -> Result { let videoflip = gst::ElementFactory::make("videoflip") .property_from_str("video-direction", "auto") .build()?; Ok(videoflip) } /// Create a videocrop element that computes the crop from the given coordinates /// and size. fn make_videocrop(data: &SelectAreaData) -> Result { let SelectAreaData { selection, paintable_rect, stream_size, } = data; let (stream_width, stream_height) = stream_size; let scale_factor_h = *stream_width as f32 / paintable_rect.width(); let scale_factor_v = *stream_height as f32 / paintable_rect.height(); if scale_factor_h != scale_factor_v { tracing::warn!( scale_factor_h, scale_factor_v, "Scale factors of horizontal and vertical are unequal" ); } // Both paintable and selection position are relative to the widget coordinates. // To get the absolute position and so correct crop values, subtract the paintable // rect's position from the selection rect. let old_selection_rect = selection.rect(); let selection_rect_scaled = Rect::new( old_selection_rect.x() - paintable_rect.x(), old_selection_rect.y() - paintable_rect.y(), old_selection_rect.width(), old_selection_rect.height(), ) .scale(scale_factor_h, scale_factor_v); let raw_top_crop = selection_rect_scaled.y(); let raw_left_crop = selection_rect_scaled.x(); let raw_right_crop = *stream_width as f32 - (selection_rect_scaled.width() + selection_rect_scaled.x()); let raw_bottom_crop = *stream_height as f32 - (selection_rect_scaled.height() + selection_rect_scaled.y()); tracing::debug!(raw_top_crop, raw_left_crop, raw_right_crop, raw_bottom_crop); let top_crop = round_to_even_f32(raw_top_crop).clamp(0, *stream_height); let left_crop = round_to_even_f32(raw_left_crop).clamp(0, *stream_width); let right_crop = round_to_even_f32(raw_right_crop).clamp(0, *stream_width); let bottom_crop = round_to_even_f32(raw_bottom_crop).clamp(0, *stream_height); tracing::debug!(top_crop, left_crop, right_crop, bottom_crop); // x264enc requires even resolution. let crop = gst::ElementFactory::make("videocrop") .property("top", top_crop) .property("left", left_crop) .property("right", right_crop) .property("bottom", bottom_crop) .build()?; Ok(crop) } /// Creates a bin with a src pad for multiple pipewire streams. /// /// Single stream: /// /// pipewiresrc -> videoflip -> videorate /// /// Multiple streams: /// /// pipewiresrc1 -> videoflip -> | /// | /// pipewiresrc2 -> videoflip -> | -> compositor -> videorate /// | /// pipewiresrcn -> videoflip -> | pub fn make_videosrc_bin( fd: RawFd, streams: &[Stream], framerate: gst::Fraction, ) -> Result { // TODO Create a bin that hotswaps compositor depending whether gl is supported or not. let bin = gst::Bin::builder().name("kooha-pipewiresrc-bin").build(); let videorate = gst::ElementFactory::make("videorate") .property("skip-to-first", true) .build()?; let videorate_capsfilter = gst::ElementFactory::make("capsfilter") .property( "caps", gst::Caps::builder("video/x-raw") .field("framerate", framerate) .build(), ) .build()?; bin.add_many([&videorate, &videorate_capsfilter])?; videorate.link(&videorate_capsfilter)?; match streams { [] => bail!("No streams provided"), [stream] => { let pipewiresrc = make_pipewiresrc(fd, &stream.node_id().to_string())?; let videoflip = make_videoflip()?; bin.add_many([&pipewiresrc, &videoflip])?; gst::Element::link_many([&pipewiresrc, &videoflip, &videorate])?; } streams => { let compositor = gst::ElementFactory::make("compositor").build()?; bin.add(&compositor)?; compositor.link(&videorate)?; let mut last_pos = 0; for stream in streams { let pipewiresrc = make_pipewiresrc(fd, &stream.node_id().to_string())?; let videoflip = make_videoflip()?; bin.add_many([&pipewiresrc, &videoflip])?; pipewiresrc.link(&videoflip)?; let compositor_sink_pad = compositor .request_pad_simple("sink_%u") .context("Failed to request sink_%u pad from compositor")?; compositor_sink_pad.set_property("xpos", last_pos); videoflip .static_pad("src") .unwrap() .link(&compositor_sink_pad)?; let (stream_width, _) = stream.size().unwrap(); last_pos += stream_width; } } } let src_pad = videorate_capsfilter.static_pad("src").unwrap(); bin.add_pad(&gst::GhostPad::with_target(&src_pad)?)?; Ok(bin) } /// Creates a new audio src element with the given name. /// /// If the class is already a source, it will return the device name as is, /// otherwise, if it is a sink, it will append `.monitor` to the device name. fn make_pulsesrc(class: DeviceClass, element_name: &str) -> Result { let device = device::find_default(class)?; let pulsesrc = gst::ElementFactory::make("pulsesrc") .name(element_name) .property("provide-clock", false) .build()?; match class { DeviceClass::Sink => { let pulsesink = device.create_element(None)?; let device_name = pulsesink .property::>("device") .context("No device name")?; ensure!(!device_name.is_empty(), "Empty device name"); let monitor_name = format!("{}.monitor", device_name); pulsesrc.set_property("device", &monitor_name); tracing::debug!("Found desktop audio with name `{}`", monitor_name); } DeviceClass::Source => { device.reconfigure_element(&pulsesrc)?; let device_name = pulsesrc .property::>("device") .context("No device name")?; ensure!(!device_name.is_empty(), "Empty device name"); tracing::debug!("Found microphone with name `{}`", device_name); } } Ok(pulsesrc) } /// Creates a bin with a src pad for a pulse audio device /// /// pulsesrc1 -> audiorate -> | /// | /// pulsesrc2 -> audiorate -> | -> audiomixer /// | /// pulsesrcn -> audiorate -> | fn make_audiosrc_bin<'a>( pulsesrcs: impl IntoIterator, ) -> Result { let bin = gst::Bin::builder().name("kooha-pulsesrc-bin").build(); let caps = gst::Caps::builder_full() .structure( gst::Structure::builder("audio/x-raw") .field("rate", AUDIO_SAMPLE_RATE) .field("channels", 2) .build(), ) .structure( gst::Structure::builder("audio/x-raw") .field("rate", AUDIO_SAMPLE_RATE) .field("channels", 1) .build(), ) .build(); let audiomixer = gst::ElementFactory::make("audiomixer") .property("latency", gst::ClockTime::from_seconds(2)) .build()?; let audiomixer_capsfilter = gst::ElementFactory::make("capsfilter") .property("caps", &caps) .build()?; bin.add_many([&audiomixer, &audiomixer_capsfilter])?; audiomixer.link(&audiomixer_capsfilter)?; let src_pad = audiomixer_capsfilter.static_pad("src").unwrap(); bin.add_pad(&gst::GhostPad::with_target(&src_pad)?)?; for pulsesrc in pulsesrcs { let audiorate = gst::ElementFactory::make("audiorate") .property("skip-to-first", true) .build()?; bin.add_many([pulsesrc, &audiorate])?; pulsesrc.link_filtered(&audiorate, &caps)?; audiorate.link_pads(None, &audiomixer, Some("sink_%u"))?; } Ok(bin) } fn round_to_even(number: i32) -> i32 { number / 2 * 2 } fn round_to_even_f32(number: f32) -> i32 { (number / 2.0).round() as i32 * 2 } #[cfg(test)] mod test { use super::*; macro_rules! assert_even { ($number:expr) => { assert_eq!($number % 2, 0) }; } #[test] fn odd_round_to_even() { assert_even!(round_to_even(5)); assert_even!(round_to_even(101)); } #[test] fn odd_round_to_even_f32() { assert_even!(round_to_even_f32(3.0)); assert_even!(round_to_even_f32(99.0)); } #[test] fn even_round_to_even() { assert_even!(round_to_even(50)); assert_even!(round_to_even(4)); } #[test] fn even_round_to_even_f32() { assert_even!(round_to_even_f32(300.0)); assert_even!(round_to_even_f32(6.0)); } #[test] fn float_round_to_even_f32() { assert_even!(round_to_even_f32(5.3)); assert_even!(round_to_even_f32(2.9)); } } SeaDve-Kooha-12ed227/src/preferences_dialog.rs000066400000000000000000000405011505224011700212220ustar00rootroot00000000000000use std::path::Path; use adw::{prelude::*, subclass::prelude::*}; use gettextrs::gettext; use gtk::{ gio, glib::{self, BoxedAnyObject, clone}, }; use crate::{ experimental::Feature, format, item_row::ItemRow, profile::Profile, settings::Settings, }; static BUILTIN_FRAMERATES: &[gst::Fraction] = &[ gst::Fraction::from_integer(10), gst::Fraction::from_integer(20), gst::Fraction::from_integer(24), gst::Fraction::from_integer(25), gst::Fraction::new_raw(30_000, 1001), // 29.97 gst::Fraction::from_integer(30), gst::Fraction::from_integer(48), gst::Fraction::from_integer(50), gst::Fraction::new_raw(60_000, 1001), // 59.94 gst::Fraction::from_integer(60), ]; const ROW_SELECTED_ITEM_NOTIFY_HANDLER_ID_KEY: &str = "kooha-row-selected-item-notify-handler-id"; const SETTINGS_PROFILE_CHANGED_HANDLER_ID_KEY: &str = "kooha-settings-profile-changed-handler-id"; /// Used to represent "none" profile in the profiles model type NoneProfile = BoxedAnyObject; mod imp { use std::cell::OnceCell; use super::*; #[derive(Debug, Default, glib::Properties, gtk::CompositeTemplate)] #[properties(wrapper_type = super::PreferencesDialog)] #[template(resource = "/io/github/seadve/Kooha/ui/preferences_dialog.ui")] pub struct PreferencesDialog { #[property(get, set, construct_only)] pub(super) settings: OnceCell, #[template_child] pub(super) delay_row: TemplateChild, #[template_child] pub(super) file_chooser_label: TemplateChild, #[template_child] pub(super) profile_row: TemplateChild, #[template_child] pub(super) framerate_row: TemplateChild, } #[glib::object_subclass] impl ObjectSubclass for PreferencesDialog { const NAME: &'static str = "KoohaPreferencesDialog"; type Type = super::PreferencesDialog; type ParentType = adw::PreferencesDialog; fn class_init(klass: &mut Self::Class) { klass.bind_template(); klass.install_action_async( "preferences.select-saving-location", None, |obj, _, _| async move { let parent = obj.root().map(|r| r.downcast::().unwrap()); if let Err(err) = obj.settings().select_saving_location(parent.as_ref()).await && !err .downcast_ref::() .is_some_and(|error| error.matches(gtk::DialogError::Dismissed)) { tracing::error!("Failed to select saving location: {:?}", err); let toast = adw::Toast::new(&gettext("Failed to set recordings folder")); obj.add_toast(toast); } }, ); } fn instance_init(obj: &glib::subclass::InitializingObject) { obj.init_template(); } } #[glib::derived_properties] impl ObjectImpl for PreferencesDialog { fn constructed(&self) { self.parent_constructed(); let obj = self.obj(); obj.setup_rows(); let settings = obj.settings(); settings .bind_record_delay(&self.delay_row.get(), "value") .build(); settings.connect_saving_location_changed(clone!( #[weak] obj, move |_| { obj.update_file_chooser_label(); } )); settings.connect_profile_changed(clone!( #[weak] obj, move |_| { obj.update_profile_row_selected(); } )); settings.connect_framerate_changed(clone!( #[weak] obj, move |_| { obj.update_framerate_row_selected(); } )); obj.update_file_chooser_label(); obj.update_profile_row_selected(); obj.update_framerate_row_selected(); // Load last active value first in `update_*_row` before connecting to // the signal to avoid unnecessary updates. self.profile_row.connect_selected_item_notify(clone!( #[weak] obj, move |row| { if let Some(item) = row.selected_item() { let profile = profile_from_obj(&item); obj.settings().set_profile(profile); } } )); self.framerate_row.connect_selected_item_notify(clone!( #[weak] obj, move |row| { if let Some(item) = row.selected_item() { let framerate = item .downcast_ref::() .unwrap() .borrow::(); obj.settings().set_framerate(*framerate); } } )); } } impl WidgetImpl for PreferencesDialog {} impl AdwDialogImpl for PreferencesDialog {} impl PreferencesDialogImpl for PreferencesDialog {} } glib::wrapper! { pub struct PreferencesDialog(ObjectSubclass) @extends gtk::Widget, adw::Dialog, adw::PreferencesDialog, @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget; } impl PreferencesDialog { pub fn new(settings: &Settings) -> Self { glib::Object::builder() .property("settings", settings) .build() } pub fn profile_row_grab_focus(&self) -> bool { self.imp().profile_row.grab_focus() } fn update_file_chooser_label(&self) { let imp = self.imp(); let saving_location = self.settings().saving_location(); imp.file_chooser_label .set_label(&display_path(&saving_location)); imp.file_chooser_label .set_tooltip_text(Some(&saving_location.display().to_string())); } fn update_profile_row_selected(&self) { let imp = self.imp(); let settings = self.settings(); let active_profile = settings.profile(); let model = imp.profile_row.model().unwrap(); let position = model.iter().position(|item| { let item = item.unwrap(); let profile = profile_from_obj(&item); profile.map(|p| p.id()) == active_profile.map(|p| p.id()) }); if let Some(position) = position { imp.profile_row.set_selected(position as u32); } else { tracing::error!( "Active profile `{:?}` was not found on profile model", active_profile.as_ref().map(|p| p.id()) ); } } fn update_framerate_row_selected(&self) { let imp = self.imp(); let settings = self.settings(); let framerate = settings.framerate(); let model = imp.framerate_row.model().unwrap(); let position = model .iter::() .position(|item| *item.unwrap().borrow::() == framerate); if let Some(position) = position { imp.framerate_row.set_selected(position as u32); } else { tracing::error!( "Active framerate `{:?}` was not found on framerate model", framerate ); } } fn setup_rows(&self) { let imp = self.imp(); let settings = self.settings(); imp.framerate_row.set_factory(Some(&row_factory( &imp.framerate_row, &gettext("This frame rate may cause performance issues on the selected format."), clone!( #[strong] settings, move |list_item| { let item = list_item.item().unwrap(); let item_row = list_item.child().unwrap().downcast::().unwrap(); let framerate = item .downcast_ref::() .unwrap() .borrow::(); item_row.set_title(format::framerate(*framerate)); unsafe { list_item.set_data( SETTINGS_PROFILE_CHANGED_HANDLER_ID_KEY, settings.connect_profile_changed(clone!( #[weak] list_item, move |settings| { update_framerate_row_shows_warning_icon(settings, &list_item); } )), ); } update_framerate_row_shows_warning_icon(&settings, list_item); } ), clone!( #[strong] settings, move |list_item| { unsafe { let handler_id = list_item .steal_data(SETTINGS_PROFILE_CHANGED_HANDLER_ID_KEY) .unwrap(); settings.disconnect(handler_id); } } ), ))); let framerate_model = { let items = BUILTIN_FRAMERATES .iter() .map(|fraction| BoxedAnyObject::new(*fraction)) .collect::>(); let model = gio::ListStore::new::(); model.splice(0, 0, &items); let active_framerate = settings.framerate(); if !BUILTIN_FRAMERATES.contains(&active_framerate) { model.append(&BoxedAnyObject::new(active_framerate)); } model }; imp.framerate_row.set_model(Some(&framerate_model)); imp.profile_row.set_factory(Some(&row_factory( &imp.profile_row, &gettext("This format is experimental and unsupported."), |list_item| { let item = list_item.item().unwrap(); let item_row = list_item.child().unwrap().downcast::().unwrap(); let profile = profile_from_obj(&item); item_row.set_title( profile.map_or_else(|| gettext("None"), |profile| profile.name().to_string()), ); item_row.set_shows_warning_icon( profile.is_some_and(|profile| profile.is_experimental()), ); }, |_| {}, ))); let active_profile = settings.profile(); let profile_model = { let profiles = Profile::all() .inspect_err(|err| tracing::error!("Failed to load profiles: {:?}", err)) .unwrap_or_default(); let model = gio::ListStore::new::(); model.splice(0, 0, profiles); if active_profile.is_none() { model.insert(0, &NoneProfile::new(())); } model }; let filter = gtk::CustomFilter::new(move |obj| { profile_from_obj(obj).is_none_or(|profile| { (Feature::ExperimentalFormats.is_enabled() || !profile.is_experimental() || active_profile.is_some_and(|active_profile| active_profile == profile)) && profile.is_available() }) }); let profile_filter_model = gtk::FilterListModel::new(Some(profile_model), Some(filter)); imp.profile_row.set_model(Some(&profile_filter_model)); } } fn row_factory( row: &adw::ComboRow, warning_tooltip_text: &str, bind_cb: impl Fn(>k::ListItem) + 'static, unbind_cb: impl Fn(>k::ListItem) + 'static, ) -> gtk::SignalListItemFactory { let factory = gtk::SignalListItemFactory::new(); let warning_tooltip_text = warning_tooltip_text.to_string(); factory.connect_setup(move |_, list_item| { let list_item = list_item.downcast_ref::().unwrap(); let item_row = ItemRow::new(); item_row.set_warning_tooltip_text(warning_tooltip_text.as_str()); list_item.set_child(Some(&item_row)); }); factory.connect_bind(clone!( #[weak] row, move |_, list_item| { let list_item = list_item.downcast_ref::().unwrap(); let item_row = list_item.child().unwrap().downcast::().unwrap(); // Only show the selected icon when it is inside the given row's popover. This assumes that // the parent of the given row is not a popover, so we can tell which is which. if item_row.ancestor(gtk::Popover::static_type()).is_some() { debug_assert!(row.ancestor(gtk::Popover::static_type()).is_none()); item_row.set_is_on_popover(true); unsafe { list_item.set_data( ROW_SELECTED_ITEM_NOTIFY_HANDLER_ID_KEY, row.connect_selected_item_notify(clone!( #[weak] list_item, move |row| { update_item_row_is_selected(row, &list_item); } )), ); } update_item_row_is_selected(&row, list_item); } else { item_row.set_is_on_popover(false); } bind_cb(list_item); } )); factory.connect_unbind(clone!( #[weak] row, move |_, list_item| { let list_item = list_item.downcast_ref::().unwrap(); unsafe { if let Some(handler_id) = list_item.steal_data(ROW_SELECTED_ITEM_NOTIFY_HANDLER_ID_KEY) { row.disconnect(handler_id); } } unbind_cb(list_item); } )); factory } fn update_item_row_is_selected(row: &adw::ComboRow, list_item: >k::ListItem) { let item_row = list_item.child().unwrap().downcast::().unwrap(); item_row.set_is_selected(row.selected_item() == list_item.item()); } fn update_framerate_row_shows_warning_icon(settings: &Settings, list_item: >k::ListItem) { let item_row = list_item.child().unwrap().downcast::().unwrap(); let item = list_item.item().unwrap(); let framerate = item .downcast_ref::() .unwrap() .borrow::(); item_row.set_shows_warning_icon( settings .profile() .is_some_and(|profile| *framerate > profile.suggested_max_framerate()), ); } /// Returns `Some` if the object is a `Profile`, otherwise `None`, if the object is a `NoneProfile`. fn profile_from_obj(obj: &glib::Object) -> Option<&Profile> { if let Some(profile) = obj.downcast_ref::() { Some(profile) } else if obj.downcast_ref::().is_some() { None } else { tracing::warn!("Unexpected object type `{}`", obj.type_()); None } } // Copied from Delineate // See https://github.com/SeaDve/Delineate/blob/e5f57835133a85c002961e681dc8935249458ef7/src/utils.rs#L71 /// Returns a shortened human-readable representation of the path. fn display_path(path: &Path) -> String { let home_dir = glib::home_dir(); if path == home_dir { return "~/".to_string(); } let path_display = path.display().to_string(); if path.starts_with(&home_dir) { let home_dir_display = home_dir.display().to_string(); return format!("~{}", &path_display[home_dir_display.len()..]); } path_display } #[cfg(test)] mod tests { use super::*; #[track_caller] fn assert_simplified_framerate(framerate: gst::Fraction) { let reduced = framerate.0.reduced(); assert_eq!( (framerate.numer(), framerate.denom()), (*reduced.numer(), *reduced.denom()) ); } #[test] fn simplified_framerate() { for framerate in BUILTIN_FRAMERATES { assert_simplified_framerate(*framerate); } } } SeaDve-Kooha-12ed227/src/profile.rs000066400000000000000000000240221505224011700170420ustar00rootroot00000000000000use anyhow::{Context, Result, bail}; use gst::prelude::*; use gtk::{ gio, glib::{self, subclass::prelude::*}, }; use once_cell::sync::OnceCell as OnceLock; use serde::Deserialize; const DEFAULT_SUGGESTED_MAX_FRAMERATE: gst::Fraction = gst::Fraction::from_integer(60); const MAX_THREAD_COUNT: u32 = 64; #[derive(Debug, Deserialize)] struct Profiles { supported: Vec, experimental: Vec, } #[derive(Debug, Deserialize)] struct ProfileData { id: String, #[serde(default)] is_experimental: bool, name: String, #[serde(rename = "suggested-max-fps")] suggested_max_framerate: Option, #[serde(rename = "extension")] file_extension: String, #[serde(rename = "videoenc")] videoenc_bin_str: String, #[serde(rename = "audioenc")] audioenc_bin_str: Option, #[serde(rename = "muxer")] muxer_bin_str: Option, } mod imp { use super::*; #[derive(Debug, Default)] pub struct Profile { pub(super) data: OnceLock, } #[glib::object_subclass] impl ObjectSubclass for Profile { const NAME: &'static str = "KoohaProfile"; type Type = super::Profile; } impl ObjectImpl for Profile {} } glib::wrapper! { pub struct Profile(ObjectSubclass); } impl Profile { fn from_data(data: ProfileData) -> Self { let this = glib::Object::new::(); this.imp().data.set(data).unwrap(); this } fn data(&self) -> &ProfileData { self.imp().data.get().unwrap() } pub fn all() -> Result<&'static [Self]> { static ALL: OnceLock> = OnceLock::new(); ALL.get_or_try_init(|| { let bytes = gio::resources_lookup_data( "/io/github/seadve/Kooha/profiles.yml", gio::ResourceLookupFlags::NONE, )?; let profiles = serde_yaml::from_slice::(&bytes)?; let supported = profiles.supported.into_iter().map(|mut data| { data.is_experimental = false; Self::from_data(data) }); let experimental = profiles.experimental.into_iter().map(|mut data| { data.is_experimental = true; Self::from_data(data) }); Ok(supported.chain(experimental).collect()) }) .map(|v| v.as_slice()) } pub fn from_id(id: &str) -> Result<&'static Self> { let profile = Self::all()? .iter() .find(|p| p.id() == id) .with_context(|| format!("Profile `{}` not found", id))?; Ok(profile) } pub fn id(&self) -> &str { &self.data().id } pub fn name(&self) -> &str { &self.data().name } pub fn file_extension(&self) -> &str { &self.data().file_extension } pub fn supports_audio(&self) -> bool { self.data().audioenc_bin_str.is_some() } pub fn suggested_max_framerate(&self) -> gst::Fraction { self.data().suggested_max_framerate.map_or_else( || DEFAULT_SUGGESTED_MAX_FRAMERATE, |raw| gst::Fraction::approximate_f64(raw).unwrap(), ) } pub fn is_experimental(&self) -> bool { self.data().is_experimental } pub fn is_available(&self) -> bool { self.is_available_inner() .inspect_err(|err| { tracing::debug!("Profile `{}` is not available: {:?}", self.id(), err); }) .is_ok() } fn is_available_inner(&self) -> Result<()> { parse_bin_test(&self.data().videoenc_bin_str).context("Failed to parse videoenc bin")?; if let Some(audioenc_bin_str) = &self.data().audioenc_bin_str { parse_bin_test(audioenc_bin_str).context("Failed to parse audioenc bin")?; } if let Some(muxer_bin_str) = &self.data().muxer_bin_str { parse_bin_test(muxer_bin_str).context("Failed to parse muxer bin")?; } Ok(()) } pub fn attach( &self, pipeline: &gst::Pipeline, video_src: &gst::Element, audio_srcs: Option<&gst::Element>, sink: &gst::Element, ) -> Result<()> { let videoenc_bin = parse_bin("kooha-videoenc-bin", &self.data().videoenc_bin_str)?; debug_assert!(videoenc_bin.iterate_elements().into_iter().any(|element| { let factory = element.unwrap().factory().unwrap(); factory.has_type(gst::ElementFactoryType::VIDEO_ENCODER) })); pipeline.add(&videoenc_bin)?; video_src.link(&videoenc_bin)?; match (&self.data().audioenc_bin_str, &self.data().muxer_bin_str) { (None, None) => { // Special case for gifenc if audio_srcs.is_some() { tracing::error!("Audio srcs ignored: Profile does not support audio"); } videoenc_bin.link(sink)?; } (audioenc_str, Some(muxer_bin_str)) => { let muxer_bin = parse_bin("kooha-muxer-bin", muxer_bin_str)?; let muxer = muxer_bin .iterate_elements() .find(|element| { element .factory() .is_some_and(|f| f.has_type(gst::ElementFactoryType::MUXER)) }) .context("Can't find the muxer in muxer bin")?; pipeline.add(&muxer_bin)?; videoenc_bin.link_pads(None, &muxer, Some("video_%u"))?; muxer_bin.link(sink)?; if let Some(audio_srcs) = audio_srcs { let audioenc_str = audioenc_str .as_ref() .context("Failed to handle audio srcs: Profile has no audio encoder")?; let audioenc_bin = parse_bin("kooha-audioenc-bin", audioenc_str)?; debug_assert!(audioenc_bin.iterate_elements().into_iter().any(|element| { let factory = element.unwrap().factory().unwrap(); factory.has_type(gst::ElementFactoryType::AUDIO_ENCODER) })); pipeline.add(&audioenc_bin)?; audio_srcs.link(&audioenc_bin)?; audioenc_bin.link_pads(None, &muxer, Some("audio_%u"))?; } } (Some(_), None) => { bail!("Unexpected audioenc without muxer") } } Ok(()) } } fn parse_bin_test(description: &str) -> Result<(), glib::Error> { // Empty names are ignored in implementation details of `gst::parse::bin_from_description_with_name_full` parse_bin_inner("", description, false)?; Ok(()) } fn parse_bin(name: &str, description: &str) -> Result { parse_bin_inner(name, description, true) } fn parse_bin_inner( name: &str, description: &str, add_ghost_pads: bool, ) -> Result { let ideal_n_threads = glib::num_processors().min(MAX_THREAD_COUNT); let formatted_description = description.replace("${N_THREADS}", &ideal_n_threads.to_string()); let bin = gst::parse::bin_from_description_with_name_full( &formatted_description, add_ghost_pads, name, None, gst::ParseFlags::FATAL_ERRORS, )? .downcast() .unwrap(); Ok(bin) } #[cfg(test)] mod tests { use super::*; use std::{collections::HashSet, sync::Once}; use crate::config::RESOURCES_FILE; fn init_gresources() { static INIT: Once = Once::new(); INIT.call_once(|| { let res = gio::Resource::load(RESOURCES_FILE).unwrap(); gio::resources_register(&res); }); } #[test] fn profiles_fields_validity() { init_gresources(); let mut unique = HashSet::new(); for profile in Profile::all().unwrap() { assert!(!profile.id().is_empty()); assert!(!profile.name().is_empty()); assert!(!profile.file_extension().is_empty()); assert_ne!( profile.suggested_max_framerate(), gst::Fraction::from_integer(0) ); assert!( unique.insert(profile.id().to_string()), "Duplicate id `{}`", profile.id() ); } } #[test] fn profiles_validity() { init_gresources(); gst::init().unwrap(); gstgif::plugin_register_static().unwrap(); for profile in Profile::all().unwrap() { // These profiles are not supported by the CI runner. if matches!(profile.id(), "va-h264") { continue; } // FIXME Remove this. This is needed as x264enc is somehow not found. if matches!(profile.id(), "mp4" | "matroska-h264") { continue; } let pipeline = gst::Pipeline::new(); let dummy_video_src = gst::ElementFactory::make("fakesrc").build().unwrap(); let dummy_sink = gst::ElementFactory::make("fakesink").build().unwrap(); pipeline.add_many([&dummy_video_src, &dummy_sink]).unwrap(); let dummy_audio_src = if profile.supports_audio() { let dummy_audio_src = gst::ElementFactory::make("fakesrc").build().unwrap(); pipeline.add(&dummy_audio_src).unwrap(); Some(dummy_audio_src) } else { None }; if let Err(err) = profile.attach( &pipeline, &dummy_video_src, dummy_audio_src.as_ref(), &dummy_sink, ) { panic!("can't attach profile `{}`: {:?}", profile.id(), err); } assert!( pipeline .find_unlinked_pad(gst::PadDirection::Sink) .is_none() ); assert!(pipeline.find_unlinked_pad(gst::PadDirection::Src).is_none()); assert!(profile.is_available()); } } } SeaDve-Kooha-12ed227/src/recording.rs000066400000000000000000000512701505224011700173630ustar00rootroot00000000000000use std::{ cell::{Cell, OnceCell, RefCell}, error, ffi::OsStr, fmt, os::fd::{IntoRawFd, OwnedFd}, path::{Path, PathBuf}, rc::Rc, time::Duration, }; use anyhow::{Context, Error, Result, ensure}; use gettextrs::gettext; use gst::prelude::*; use gtk::{ gio::{self, prelude::*}, glib::{self, clone, closure_local, subclass::prelude::*}, }; use crate::{ application::Application, area_selector::AreaSelector, cancelled::Cancelled, experimental::Feature, help::ContextWithHelp, i18n::gettext_f, pipeline::PipelineBuilder, screencast_portal::{ CursorMode, PersistMode, Proxy, Session, SourceType, Stream, WindowIdentifier, }, settings::{CaptureMode, Settings}, timer::Timer, }; const DURATION_UPDATE_INTERVAL: Duration = Duration::from_millis(200); #[derive(Debug)] pub struct NoProfileError; impl fmt::Display for NoProfileError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.write_str(&gettext("No active profile")) } } impl error::Error for NoProfileError {} #[derive(Debug, Default, Clone, Copy, PartialEq, Eq, glib::Boxed)] #[boxed_type(name = "KoohaRecordingState")] pub enum RecordingState { #[default] Init, Delayed { secs_left: u64, }, Recording, Paused, Flushing { /// Progress in percentage with range 0..=100 progress: u8, }, Finished, } #[derive(Debug, Clone, glib::SharedBoxed)] #[shared_boxed_type(name = "KoohaRecordingResult")] struct BoxedResult(Rc>); mod imp { use std::sync::LazyLock; use glib::subclass::Signal; use gst::bus::BusWatchGuard; use super::*; #[derive(Debug, Default, glib::Properties)] #[properties(wrapper_type = super::Recording)] pub struct Recording { #[property(get)] pub(super) state: Cell, #[property(get)] pub(super) duration: Cell, pub(super) file: OnceCell, pub(super) estimated_final_duration: Cell>, pub(super) timer: RefCell>, pub(super) session: RefCell>, pub(super) duration_source_id: RefCell>, pub(super) pipeline: OnceCell, pub(super) bus_watch_guard: RefCell>, } #[glib::object_subclass] impl ObjectSubclass for Recording { const NAME: &'static str = "KoohaRecording"; type Type = super::Recording; } #[glib::derived_properties] impl ObjectImpl for Recording { fn dispose(&self) { if let Some(timer) = self.timer.take() { timer.cancel(); } if let Some(pipeline) = self.pipeline.get() && let Err(err) = pipeline.set_state(gst::State::Null) { tracing::warn!("Failed to stop pipeline on dispose: {:?}", err); } self.obj().close_session(); if let Some(source_id) = self.duration_source_id.take() { source_id.remove(); } } fn signals() -> &'static [glib::subclass::Signal] { static SIGNALS: LazyLock> = LazyLock::new(|| { vec![ Signal::builder("finished") .param_types([BoxedResult::static_type()]) .build(), ] }); SIGNALS.as_ref() } } } glib::wrapper! { pub struct Recording(ObjectSubclass); } impl Recording { pub fn new() -> Self { glib::Object::new() } pub async fn start(&self, parent: Option<&impl IsA>, settings: &Settings) { if !matches!(self.state(), RecordingState::Init) { tracing::error!("Trying to start recording on a non-init state"); return; } if let Err(err) = self.start_inner(parent, settings).await { self.close_session(); self.set_finished(Err(err)); } } async fn start_inner( &self, parent: Option<&impl IsA>, settings: &Settings, ) -> Result<()> { let imp = self.imp(); let profile = settings.profile().context(NoProfileError)?; // Setup screencast session let restore_token = settings.screencast_restore_token(); settings.reset_screencast_restore_token(); let (screencast_session, streams, restore_token, fd) = new_screencast_session( if settings.show_pointer() { CursorMode::EMBEDDED } else { CursorMode::HIDDEN }, if Feature::WindowRecording.is_enabled() { SourceType::MONITOR | SourceType::WINDOW } else { SourceType::MONITOR }, Feature::MultipleVideoSources.is_enabled(), Some(&restore_token), PersistMode::Persistent, parent, ) .await .with_context(|| { ContextWithHelp::new( gettext("Failed to start recording"), gettext_f( // Translators: Do NOT translate the contents between '{' and '}', this is a variable name. "Check out {link} for help.", &[("link", r#"It Doesn't Work page"#)], ), ) })?; imp.session.replace(Some(screencast_session)); settings.set_screencast_restore_token(&restore_token.unwrap_or_default()); let file_path = new_recording_path(&settings.saving_location(), profile.file_extension()); imp.file.set(gio::File::for_path(&file_path)).unwrap(); let raw_fd = fd.into_raw_fd(); let mut pipeline_builder = PipelineBuilder::new( file_path, settings.framerate(), profile.clone(), raw_fd, streams.clone(), ); // Select area if settings.capture_mode() == CaptureMode::Selection { let data = AreaSelector::select(raw_fd, &streams, &Application::get().window()).await?; pipeline_builder.select_area_data(data); } if profile.supports_audio() { pipeline_builder.record_desktop_audio(settings.record_desktop_audio()); pipeline_builder.record_microphone(settings.record_microphone()); } // Build pipeline let pipeline = pipeline_builder.build().with_context(|| { ContextWithHelp::new( gettext("Failed to start recording"), gettext("A GStreamer plugin may not be installed."), ) })?; imp.pipeline.set(pipeline.clone()).unwrap(); // Setup and run timer let timer = Timer::new( settings.record_delay(), clone!( #[weak(rename_to = obj)] self, move |secs_left| { obj.set_state(RecordingState::Delayed { secs_left }); } ), ); imp.timer.replace(Some(Timer::clone(&timer))); timer.await?; let bus_watch_guard = pipeline .bus() .unwrap() .add_watch_local(clone!( #[weak(rename_to = obj)] self, #[upgrade_or_panic] move |_, message| obj.handle_bus_message(message) )) .unwrap(); imp.bus_watch_guard.replace(Some(bus_watch_guard)); imp.duration_source_id.replace(Some(glib::timeout_add_local( DURATION_UPDATE_INTERVAL, clone!( #[weak(rename_to = obj)] self, #[upgrade_or_panic] move || { obj.update_duration(); obj.update_flushing_progress(); glib::ControlFlow::Continue } ), ))); pipeline .set_state(gst::State::Playing) .context("Failed to initialize pipeline state to playing") .with_context(|| { ContextWithHelp::new( gettext("Failed to start recording"), gettext("Make sure that the saving location exists and is accessible."), ) })?; self.update_duration(); Ok(()) } pub fn pause(&self) -> Result<()> { ensure!( matches!(self.state(), RecordingState::Recording), "Recording can only be paused from recording state" ); self.pipeline() .set_state(gst::State::Paused) .context("Failed to set pipeline state to paused")?; // TODO Handle effect on estimated final duration Ok(()) } pub fn resume(&self) -> Result<()> { ensure!( matches!(self.state(), RecordingState::Paused), "Recording can only be resumed from paused state" ); self.pipeline() .set_state(gst::State::Playing) .context("Failed to set pipeline state to playing from paused")?; Ok(()) } pub fn stop(&self) { let imp = self.imp(); let state = self.state(); if matches!( state, RecordingState::Init | RecordingState::Flushing { .. } | RecordingState::Finished ) { tracing::error!("Trying to stop recording on a `{:?}` state", state); return; } let pipeline = self.pipeline(); self.set_state(RecordingState::Flushing { progress: 0 }); imp.estimated_final_duration .set(pipeline.current_running_time()); self.update_flushing_progress(); tracing::debug!("Sending eos event to pipeline"); // FIXME Maybe it is needed to verify if we received the same // eos event by checking its seqnum in the bus? pipeline.send_event(gst::event::Eos::new()); } pub fn cancel(&self) { let imp = self.imp(); tracing::debug!("Cancelling recording"); if let Some(timer) = imp.timer.take() { timer.cancel(); } if let Some(pipeline) = imp.pipeline.get() && let Err(err) = pipeline.set_state(gst::State::Null) { tracing::warn!("Failed to stop pipeline on cancel: {:?}", err); } let _ = imp.bus_watch_guard.take(); self.close_session(); if let Some(source_id) = imp.duration_source_id.take() { source_id.remove(); } // HACK we need to return before calling this to avoid a `BorrowMutError` when // `Window` tried to take the `recording` on finished callback while `recording` // is borrowed to call `cancel`. glib::idle_add_local_once(clone!( #[weak(rename_to = obj)] self, move || { obj.set_finished(Err(Error::from(Cancelled::new("recording")))); } )); } pub fn connect_finished(&self, f: F) -> glib::SignalHandlerId where F: Fn(&Self, &Result<(gio::File, gst::ClockTime)>) + 'static, { self.connect_closure( "finished", true, closure_local!(|obj: &Self, result: BoxedResult| { f(obj, &result.0); }), ) } fn set_state(&self, state: RecordingState) { tracing::trace!("Recording state changed to {:?}", state); if state == self.state() { return; } self.imp().state.replace(state); self.notify_state(); } fn file(&self) -> &gio::File { self.imp() .file .get() .expect("file not set, make sure to start recording first") } fn pipeline(&self) -> &gst::Pipeline { self.imp() .pipeline .get() .expect("pipeline not set, make sure to start recording first") } fn set_finished(&self, res: Result<(gio::File, gst::ClockTime)>) { self.set_state(RecordingState::Finished); let result = BoxedResult(Rc::new(res)); self.emit_by_name::<()>("finished", &[&result]); } /// Closes session on the background fn close_session(&self) { if let Some(session) = self.imp().session.take() { glib::spawn_future_local(async move { if let Err(err) = session.close().await { tracing::warn!("Failed to close screencast session: {:?}", err); } }); } } fn update_duration(&self) { let imp = self.imp(); let clock_time = imp .pipeline .get() .and_then(|pipeline| pipeline.query_position::()) .unwrap_or(gst::ClockTime::ZERO); if clock_time == self.duration() { return; } imp.duration.set(clock_time); self.notify_duration(); } fn update_flushing_progress(&self) { let imp = self.imp(); let RecordingState::Flushing { progress: prev_progress, } = self.state() else { return; }; let progress = imp .estimated_final_duration .get() .map_or(0, |estimated_final_duration| { let progress_percent = self.duration().nseconds() as f64 / estimated_final_duration.nseconds() as f64 * 100.0; (progress_percent.round() as u8).clamp(0, 100) }); if prev_progress == progress { return; } self.set_state(RecordingState::Flushing { progress }); } fn handle_bus_message(&self, message: &gst::Message) -> glib::ControlFlow { use gst::MessageView; let imp = self.imp(); match message.view() { MessageView::Error(e) => { tracing::debug!(state = ?self.state(), "Received error at bus"); if let Err(err) = self.pipeline().set_state(gst::State::Null) { tracing::warn!("Failed to stop pipeline on error: {:?}", err); } self.close_session(); if let Some(source_id) = imp.duration_source_id.take() { source_id.remove(); } // TODO print error quarks for all glib::Error let error = Error::from(e.error()) .context(e.debug().unwrap_or_else(|| "".into())) .context(gettext("An error occurred while recording")); let error = if e.error().matches(gst::ResourceError::OpenWrite) { error.context(ContextWithHelp::new( gettext_f( // Translators: Do NOT translate the contents between '{' and '}', this is a variable name. "Failed to open “{path}” for writing", &[("path", &self.file().uri())], ), gettext("Make sure that the saving location exists and is accessible."), )) } else { error }; self.set_finished(Err(error)); glib::ControlFlow::Break } MessageView::Eos(..) => { tracing::debug!("Eos signal received from record bus"); debug_assert!( matches!(self.state(), RecordingState::Flushing { .. }), "received eos signal on {:?}", self.state() ); self.set_state(RecordingState::Flushing { progress: 100 }); self.update_duration(); let duration = self.duration(); if let Err(err) = self.pipeline().set_state(gst::State::Null) { tracing::error!("Failed to stop pipeline on eos: {:?}", err); } self.close_session(); if let Some(source_id) = imp.duration_source_id.take() { source_id.remove(); } self.set_finished(Ok((self.file().clone(), duration))); glib::ControlFlow::Break } MessageView::StateChanged(sc) => { let new_state = sc.current(); if message.src() != imp .pipeline .get() .map(|pipeline| pipeline.upcast_ref::()) { tracing::trace!( "`{}` changed state from `{:?}` -> `{:?}`", message .src() .map_or_else(|| "".into(), |e| e.name()), sc.old(), new_state, ); return glib::ControlFlow::Continue; } tracing::debug!( "Pipeline changed state from `{:?}` -> `{:?}`", sc.old(), new_state, ); let state = match new_state { gst::State::Paused => RecordingState::Paused, gst::State::Playing => RecordingState::Recording, _ => return glib::ControlFlow::Continue, }; self.set_state(state); glib::ControlFlow::Continue } MessageView::AsyncDone(ad) => { tracing::trace!("Received async-done message on bus: {:?}", ad); // This is enabled by setting `GST_DEBUG_DUMP_DOT_DIR` to a directory (e.g. `GST_DEBUG_DUMP_DOT_DIR=.`). self.pipeline().debug_to_dot_file_with_ts( gst::DebugGraphDetails::VERBOSE, "kooha-recording-pipeline", ); glib::ControlFlow::Continue } MessageView::Warning(w) => { tracing::warn!("Received warning message on bus: {:?}", w); glib::ControlFlow::Continue } MessageView::Info(i) => { tracing::debug!("Received info message on bus: {:?}", i); glib::ControlFlow::Continue } MessageView::Qos(q) => { tracing::warn!("Received qos message on bus: {:?}", q); glib::ControlFlow::Continue } other => { tracing::trace!("Received other message on bus: {:?}", other); glib::ControlFlow::Continue } } } } async fn new_screencast_session( cursor_mode: CursorMode, source_type: SourceType, is_multiple_sources: bool, restore_token: Option<&str>, persist_mode: PersistMode, parent_window: Option<&impl IsA>, ) -> Result<(Session, Vec, Option, OwnedFd)> { let proxy = Proxy::new() .await .context("Failed to create screencast proxy")?; tracing::debug!( version = ?proxy.version(), available_cursor_modes = ?proxy.available_cursor_modes(), available_source_types = ?proxy.available_source_types(), "Created screencast proxy" ); let session = proxy .create_session() .await .context("Failed to create session")?; tracing::debug!( ?cursor_mode, ?source_type, is_multiple_sources, restore_token, ?persist_mode, "Selecting sources" ); session .select_sources( source_type, is_multiple_sources, cursor_mode, restore_token, persist_mode, ) .await .context("Failed to select sources")?; let window_identifier = if let Some(window) = parent_window { WindowIdentifier::new(window.as_ref()).await } else { WindowIdentifier::None }; tracing::debug!(%window_identifier, "Starting session"); let (streams, restore_token) = session .start(window_identifier) .await .context("Failed to start session")?; let fd = session .open_pipe_wire_remote() .await .context("Failed to open pipewire remote")?; Ok((session, streams, restore_token, fd)) } fn new_recording_path(saving_location: &Path, extension: impl AsRef) -> PathBuf { let file_name = glib::DateTime::now_local() .expect("You are somehow on year 9999") .format("Kooha-%F-%H-%M-%S") .expect("Invalid format string"); let mut path = saving_location.join(file_name); path.set_extension(extension); path } SeaDve-Kooha-12ed227/src/screencast_portal/000077500000000000000000000000001505224011700205475ustar00rootroot00000000000000SeaDve-Kooha-12ed227/src/screencast_portal/handle_token.rs000066400000000000000000000017121505224011700235510ustar00rootroot00000000000000use gtk::glib::{self, prelude::*}; use std::sync::atomic::{AtomicUsize, Ordering}; static COUNTER: AtomicUsize = AtomicUsize::new(0); #[derive(Debug)] pub struct HandleToken(String); impl HandleToken { pub fn new() -> Self { Self(format!("kooha_{}", COUNTER.fetch_add(1, Ordering::Relaxed))) } pub fn as_str(&self) -> &str { &self.0 } } impl ToVariant for HandleToken { fn to_variant(&self) -> glib::Variant { self.0.to_variant() } } #[cfg(test)] mod tests { use super::*; #[test] fn uniqueness() { let a = HandleToken::new(); let b = HandleToken::new(); let c = HandleToken::new(); assert_ne!(a.as_str(), b.as_str()); assert_ne!(b.as_str(), c.as_str()); assert_ne!(a.as_str(), c.as_str()); } #[test] fn to_variant() { let ht = HandleToken::new(); assert_eq!(ht.to_variant().type_(), String::static_variant_type()); } } SeaDve-Kooha-12ed227/src/screencast_portal/mod.rs000066400000000000000000000256521505224011700217060ustar00rootroot00000000000000mod handle_token; mod types; mod variant_dict; mod window_identifier; use anyhow::{Context, Result, anyhow, bail}; use futures_channel::oneshot; use futures_util::future::{self, Either}; use gtk::{ gio, glib::{ self, variant::{Handle, ObjectPath}, }, prelude::*, }; use std::{cell::RefCell, os::fd::OwnedFd, time::Duration}; use self::{handle_token::HandleToken, variant_dict::VariantDict}; pub use self::{ types::{CursorMode, PersistMode, SourceType, Stream}, window_identifier::WindowIdentifier, }; use crate::cancelled::Cancelled; const DESKTOP_BUS_NAME: &str = "org.freedesktop.portal.Desktop"; const DESKTOP_OBJECT_PATH: &str = "/org/freedesktop/portal/desktop"; const SESSION_IFACE_NAME: &str = "org.freedesktop.portal.Session"; const REQUEST_IFACE_NAME: &str = "org.freedesktop.portal.Request"; const SCREENCAST_IFACE_NAME: &str = "org.freedesktop.portal.ScreenCast"; const PROXY_CALL_TIMEOUT: Duration = Duration::from_secs(5); pub struct Proxy(gio::DBusProxy); impl Proxy { pub async fn new() -> Result { let inner = gio::DBusProxy::for_bus_future( gio::BusType::Session, gio::DBusProxyFlags::NONE, None, DESKTOP_BUS_NAME, DESKTOP_OBJECT_PATH, SCREENCAST_IFACE_NAME, ) .await?; Ok(Self(inner)) } pub async fn create_session(&self) -> Result { let session_handle_token = HandleToken::new(); let handle_token = HandleToken::new(); let session_options = VariantDict::builder() .entry("handle_token", &handle_token) .entry("session_handle_token", &session_handle_token) .build(); let response = screencast_request_call(&self.0, &handle_token, "CreateSession", &(session_options,)) .await?; tracing::trace!(?response, "Created screencast session"); // FIXME this must be an ObjectPath not a String let session_handle = response.get_flatten::("session_handle")?; debug_assert!(session_handle.ends_with(&session_handle_token.as_str())); Ok(Session { proxy: self.0.clone(), session_handle: ObjectPath::try_from(session_handle)?, }) } pub fn version(&self) -> Result { self.property("version") } pub fn available_cursor_modes(&self) -> Result { let value = self.property::("AvailableCursorModes")?; CursorMode::from_bits(value).ok_or_else(|| anyhow!("Invalid cursor mode: {}", value)) } pub fn available_source_types(&self) -> Result { let value = self.property::("AvailableSourceTypes")?; SourceType::from_bits(value).ok_or_else(|| anyhow!("Invalid source type: {}", value)) } fn property(&self, name: &str) -> Result { let variant = self .0 .cached_property(name) .ok_or_else(|| anyhow!("No cached property named `{}`", name))?; variant_get::(&variant) } } #[derive(Debug)] pub struct Session { proxy: gio::DBusProxy, session_handle: ObjectPath, } impl Session { pub async fn select_sources( &self, source_type: SourceType, multiple: bool, cursor_mode: CursorMode, restore_token: Option<&str>, persist_mode: PersistMode, ) -> Result<()> { let handle_token = HandleToken::new(); let mut options = VariantDict::builder() .entry("handle_token", &handle_token) .entry("types", source_type.bits()) .entry("multiple", multiple) .entry("cursor_mode", cursor_mode.bits()) .entry("persist_mode", persist_mode as u32) .build(); if let Some(restore_token) = restore_token.filter(|t| !t.is_empty()) { options.insert("restore_token", restore_token); } let response = screencast_request_call( &self.proxy, &handle_token, "SelectSources", &(&self.session_handle, options), ) .await?; debug_assert!(response.is_empty()); tracing::trace!(?response, "Selected sources"); Ok(()) } pub async fn start( &self, window_identifier: WindowIdentifier, ) -> Result<(Vec, Option)> { let handle_token = HandleToken::new(); let options = VariantDict::builder() .entry("handle_token", &handle_token) .build(); let response = screencast_request_call( &self.proxy, &handle_token, "Start", &(&self.session_handle, window_identifier, options), ) .await?; tracing::trace!(?response, "Started screencast session"); let streams = response.get_flatten("streams")?; let restore_token = response.get("restore_token")?; Ok((streams, restore_token)) } pub async fn open_pipe_wire_remote(&self) -> Result { let (response, fd_list) = self .proxy .call_with_unix_fd_list_future( "OpenPipeWireRemote", Some(&(&self.session_handle, VariantDict::default()).to_variant()), gio::DBusCallFlags::NONE, PROXY_CALL_TIMEOUT.as_millis() as i32, gio::UnixFDList::NONE, ) .await?; let fd_list = fd_list.context("No given fd list")?; tracing::trace!(%response, fd_list = ?fd_list.peek_fds(), "Opened pipe wire remote"); let (fd_index,) = variant_get::<(Handle,)>(&response)?; debug_assert_eq!(fd_list.length(), 1); let fd = fd_list .get(fd_index.0) .with_context(|| format!("Failed to get fd at index `{}`", fd_index.0))?; Ok(fd) } pub async fn close(self) -> Result<()> { let response = self .proxy .connection() .call_future( Some(DESKTOP_BUS_NAME), self.session_handle.as_str(), SESSION_IFACE_NAME, "Close", None, None, gio::DBusCallFlags::NONE, PROXY_CALL_TIMEOUT.as_millis() as i32, ) .await .context("Failed to invoke Close on the session")?; debug_assert!(variant_get::<()>(&response).is_ok()); tracing::trace!(%response, "Closed screencast session"); Ok(()) } } async fn screencast_request_call( proxy: &gio::DBusProxy, handle_token: &HandleToken, method: &str, params: impl ToVariant, ) -> Result { let connection = proxy.connection(); let unique_identifier = connection .unique_name() .expect("Connection has no unique name") .trim_start_matches(':') .replace('.', "_"); let request_path = { let path = format!( "/org/freedesktop/portal/desktop/request/{}/{}", unique_identifier, handle_token.as_str() ); ObjectPath::try_from(path.as_str()) .with_context(|| format!("Failed to create object path from `{}`", path))? }; let request_proxy = gio::DBusProxy::for_bus_future( gio::BusType::Session, gio::DBusProxyFlags::DO_NOT_AUTO_START | gio::DBusProxyFlags::DO_NOT_CONNECT_SIGNALS | gio::DBusProxyFlags::DO_NOT_LOAD_PROPERTIES, None, DESKTOP_BUS_NAME, request_path.as_str(), REQUEST_IFACE_NAME, ) .await?; let (name_owner_lost_tx, name_owner_lost_rx) = oneshot::channel(); let name_owner_lost_tx = RefCell::new(Some(name_owner_lost_tx)); let handler_id = request_proxy.connect_notify_local(Some("g-name-owner"), move |proxy, _| { if proxy.g_name_owner().is_none() { tracing::warn!("Lost request name owner"); if let Some(tx) = name_owner_lost_tx.take() { let _ = tx.send(()); } else { tracing::warn!("Received another g name owner notify"); } } }); let (response_tx, response_rx) = oneshot::channel(); let response_tx = RefCell::new(Some(response_tx)); let subscription_id = connection.signal_subscribe( Some(DESKTOP_BUS_NAME), Some(REQUEST_IFACE_NAME), Some("Response"), Some(request_path.as_str()), None, gio::DBusSignalFlags::NONE, move |_connection, _sender_name, _object_path, _interface_name, _signal_name, output| { if let Some(tx) = response_tx.take() { let _ = tx.send(output.clone()); } else { tracing::warn!("Received another response for already finished request"); } }, ); let params = params.to_variant(); let path = proxy .call_future( method, Some(¶ms), gio::DBusCallFlags::NONE, PROXY_CALL_TIMEOUT.as_millis() as i32, ) .await .with_context(|| format!("Failed to call `{}` with parameters: {:?}", method, params))?; debug_assert_eq!(variant_get::<(ObjectPath,)>(&path).unwrap().0, request_path); tracing::trace!("Waiting request response for method `{}`", method); let response = match future::select(response_rx, name_owner_lost_rx).await { Either::Left((res, _)) => res .with_context(|| Cancelled::new(method)) .context("Sender dropped")?, Either::Right(_) => bail!("Lost name owner for request"), }; request_proxy.disconnect(handler_id); connection.signal_unsubscribe(subscription_id); tracing::trace!("Request response received for method `{}`", method); let (response_no, response) = variant_get::<(u32, VariantDict)>(&response)?; match response_no { 0 => Ok(response), 1 => Err(Cancelled::new(method)).context("Cancelled by user"), 2 => Err(anyhow!( "Interaction was ended in some other way with response {:?}", response )), no => Err(anyhow!("Unknown response number of {}", no)), } } /// Provides error messages on incorrect variant type. fn variant_get(variant: &glib::Variant) -> Result { variant.get::().ok_or_else(|| { anyhow!( "Expected type `{}`; got `{}` with value `{}`", T::static_variant_type(), variant.type_(), variant ) }) } #[cfg(test)] mod tests { use super::*; #[test] fn get_variant_ok() { let variant = ("foo",).to_variant(); let (value,) = variant_get::<(String,)>(&variant).unwrap(); assert_eq!(value, "foo"); } #[test] fn get_variant_wrong_type() { let variant = "foo".to_variant(); let err = variant_get::(&variant).unwrap_err(); assert_eq!( "Expected type `u`; got `s` with value `'foo'`", err.to_string() ); } } SeaDve-Kooha-12ed227/src/screencast_portal/types.rs000066400000000000000000000064371505224011700222730ustar00rootroot00000000000000use gtk::glib::{self, bitflags::bitflags, prelude::*}; use std::borrow::Cow; use super::VariantDict; bitflags! { #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub struct CursorMode: u32 { const HIDDEN = 1; const EMBEDDED = 2; const METADATA = 4; } } bitflags! { #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub struct SourceType: u32 { const MONITOR = 1; const WINDOW = 2; const VIRTUAL = 4; } } #[allow(dead_code)] #[derive(Debug, Copy, Clone, PartialEq, Eq)] #[repr(u32)] pub enum PersistMode { /// Do not persist. None = 0, /// Persist as long as the application is alive. Transient = 1, /// Persist until the user revokes this permission. Persistent = 2, } type StreamVariantType = (u32, VariantDict); #[derive(Debug, Clone)] pub struct Stream { node_id: u32, id: Option, position: Option<(i32, i32)>, size: Option<(i32, i32)>, source_type: Option, } impl Stream { pub fn node_id(&self) -> u32 { self.node_id } pub fn id(&self) -> Option<&str> { self.id.as_deref() } pub fn position(&self) -> Option<(i32, i32)> { self.position } pub fn size(&self) -> Option<(i32, i32)> { self.size } pub fn source_type(&self) -> Option { self.source_type } } impl StaticVariantType for Stream { fn static_variant_type() -> Cow<'static, glib::VariantTy> { ::static_variant_type() } } impl FromVariant for Stream { fn from_variant(variant: &glib::Variant) -> Option { let (node_id, props) = variant.get::()?; Some(Self { node_id, id: props.get_flatten("id").ok(), position: props.get_flatten("position").ok(), size: props.get_flatten("size").ok(), source_type: props .get_flatten::("source_type") .ok() .and_then(SourceType::from_bits), }) } } #[cfg(test)] mod tests { use super::*; #[test] fn stream_static_variant_type() { assert_eq!( Stream::static_variant_type(), glib::VariantTy::new("(ua{sv})").unwrap() ); } #[test] fn stream_from_variant() { let variant = glib::Variant::parse(None, "(uint32 63, {'id': <'0'>, 'source_type': , 'position': <(2, 2)>, 'size': <(1680, 1050)>})").unwrap(); assert_eq!(variant.type_(), Stream::static_variant_type()); let stream = variant.get::().unwrap(); assert_eq!(stream.node_id(), 63); assert_eq!(stream.id(), Some("0")); assert_eq!(stream.position(), Some((2, 2))); assert_eq!(stream.size(), Some((1680, 1050))); assert_eq!(stream.source_type(), Some(SourceType::MONITOR)); } #[test] fn stream_from_variant_optional() { let variant = glib::Variant::parse(Some(&Stream::static_variant_type()), "(uint32 63, {})").unwrap(); let stream = variant.get::().unwrap(); assert_eq!(stream.node_id(), 63); assert_eq!(stream.id(), None); assert_eq!(stream.position(), None); assert_eq!(stream.size(), None); assert_eq!(stream.source_type(), None); } } SeaDve-Kooha-12ed227/src/screencast_portal/variant_dict.rs000066400000000000000000000123521505224011700235670ustar00rootroot00000000000000use anyhow::{Result, anyhow}; use gtk::glib::{self, prelude::*}; use std::{borrow::Cow, collections::HashMap, fmt}; #[derive(Default)] pub struct VariantDict(HashMap); impl fmt::Debug for VariantDict { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fmt::Debug::fmt(&self.to_variant(), f) } } impl VariantDict { pub fn builder() -> VariantDictBuilder { VariantDictBuilder { h: HashMap::new() } } pub fn is_empty(&self) -> bool { self.0.is_empty() } pub fn insert(&mut self, key: &str, value: impl ToVariant) { self.0.insert(key.to_string(), value.to_variant()); } pub fn get_flatten(&self, key: &str) -> Result { let variant = self .0 .get(key) .ok_or_else(|| anyhow!("Key `{}` not found", key))?; variant.get::().ok_or_else(|| { anyhow!( "Expected key `{}` of type `{}`; got `{}` with value `{}`", key, T::static_variant_type(), variant.type_(), variant ) }) } pub fn get(&self, key: &str) -> Result> { let Some(variant) = self.0.get(key) else { return Ok(None); }; let value = variant.get::().ok_or_else(|| { anyhow!( "Expected key `{}` of type `{}`; got `{}` with value `{}`", key, T::static_variant_type(), variant.type_(), variant ) })?; Ok(Some(value)) } } impl StaticVariantType for VariantDict { fn static_variant_type() -> Cow<'static, glib::VariantTy> { glib::VariantDict::static_variant_type() } } impl FromVariant for VariantDict { fn from_variant(value: &glib::Variant) -> Option { Some(Self(value.get::>()?)) } } impl ToVariant for VariantDict { fn to_variant(&self) -> glib::Variant { self.0.to_variant() } } pub struct VariantDictBuilder { h: HashMap, } impl VariantDictBuilder { pub fn entry(mut self, key: &str, value: impl ToVariant) -> Self { self.h.insert(key.into(), value.to_variant()); self } pub fn build(self) -> VariantDict { VariantDict(self.h) } } #[cfg(test)] mod tests { use super::*; #[test] fn empty() { let var_dict_a = VariantDict::default(); assert!(var_dict_a.is_empty()); let var_dict_b = VariantDict::builder().entry("test", "value").build(); assert!(!var_dict_b.is_empty()); } #[test] fn get_flatten_ok() { let var_dict = VariantDict::builder().entry("test", "value").build(); assert_eq!(var_dict.get_flatten::("test").unwrap(), "value"); } #[test] fn get_flatten_missing() { let var_dict = VariantDict::builder().entry("test", "value").build(); assert_eq!( var_dict .get_flatten::("test2") .unwrap_err() .to_string(), "Key `test2` not found" ); } #[test] fn get_flatten_wrong_type() { let var_dict = VariantDict::builder().entry("test", "value").build(); assert_eq!( var_dict.get_flatten::("test").unwrap_err().to_string(), "Expected key `test` of type `u`; got `s` with value `'value'`" ); } #[test] fn get_ok() { let var_dict = VariantDict::builder().entry("test", "value").build(); assert_eq!( var_dict.get::("test").unwrap().as_deref(), Some("value") ); } #[test] fn get_missing() { let var_dict = VariantDict::builder().entry("test", "value").build(); assert_eq!(var_dict.get::("test2").unwrap(), None); } #[test] fn get_wrong_type() { let var_dict = VariantDict::builder().entry("test", "value").build(); assert_eq!( var_dict.get::("test").unwrap_err().to_string(), "Expected key `test` of type `u`; got `s` with value `'value'`" ); } #[test] fn static_variant_type() { assert_eq!( VariantDict::default().to_variant().type_(), glib::VariantDict::static_variant_type() ); } #[test] fn from_variant() { let var = glib::Variant::parse(None, "{'test': <'value'>}").unwrap(); let var_dict = VariantDict::from_variant(&var).unwrap(); assert_eq!(var_dict.get_flatten::("test").unwrap(), "value"); } #[test] fn to_variant() { assert_eq!(VariantDict::static_variant_type(), glib::VariantTy::VARDICT); let var_dict = VariantDict::builder().entry("test", "value").build(); assert_eq!(var_dict.to_variant().to_string(), "{'test': <'value'>}"); } #[test] fn builder() { let var_dict = VariantDict::builder() .entry("test", "value") .entry("test2", "value2") .build(); assert_eq!(var_dict.get_flatten::("test").unwrap(), "value"); assert_eq!(var_dict.get_flatten::("test2").unwrap(), "value2"); } } SeaDve-Kooha-12ed227/src/screencast_portal/window_identifier.rs000066400000000000000000000077071505224011700246410ustar00rootroot00000000000000// Based on ashpd (MIT) // Source: https://github.com/bilelmoussaoui/ashpd/blob/49aca6ff0f20c68fc2ddb09763ed9937b002ded6/src/window_identifier/gtk4.rs use futures_channel::oneshot; use gtk::{ glib::{self, WeakRef}, prelude::*, }; use std::{cell::RefCell, fmt}; const WINDOW_HANDLE_KEY: &str = "kooha-wayland-window-handle"; type WindowHandleData = (Option, u8); #[derive(Debug)] pub enum WindowIdentifier { Wayland { top_level: WeakRef, handle: Option, }, X11(gdk_x11::XWindow), None, } impl fmt::Display for WindowIdentifier { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { WindowIdentifier::Wayland { handle, .. } => { write!(f, "wayland:{}", handle.as_deref().unwrap_or_default()) } WindowIdentifier::X11(xid) => write!(f, "x11:{:#x}", xid), WindowIdentifier::None => f.write_str(""), } } } impl ToVariant for WindowIdentifier { fn to_variant(&self) -> glib::Variant { self.to_string().to_variant() } } impl WindowIdentifier { pub async fn new(native: &impl IsA) -> Self { let Some(surface) = native.surface() else { return Self::None; }; if let Some(top_level) = surface.downcast_ref::() { let handle = unsafe { if let Some(mut handle) = top_level.data::(WINDOW_HANDLE_KEY) { let (handle, ref_count) = handle.as_mut(); *ref_count += 1; handle.clone() } else { let (tx, rx) = oneshot::channel(); let tx = RefCell::new(Some(tx)); let result = top_level.export_handle(move |_, handle| { let tx = tx.take().expect("callback called twice"); match handle { Ok(handle) => { let _ = tx.send(Some(handle.to_string())); } Err(err) => { tracing::warn!("Failed to export handle: {:?}", err); let _ = tx.send(None); } } }); if !result { return Self::None; } let handle = rx.await.unwrap(); top_level.set_data::(WINDOW_HANDLE_KEY, (handle.clone(), 1)); handle } }; Self::Wayland { top_level: top_level.downgrade(), handle, } } else if let Some(surface) = surface.downcast_ref::() { Self::X11(surface.xid()) } else { tracing::warn!( "Unhandled surface backend type: {:?}", surface.display().backend() ); Self::None } } } impl Drop for WindowIdentifier { fn drop(&mut self) { if let WindowIdentifier::Wayland { top_level, handle } = self { if handle.is_none() { return; } if let Some(top_level) = top_level.upgrade() { unsafe { let (handle, ref_count) = top_level .data::(WINDOW_HANDLE_KEY) .unwrap() .as_mut(); if *ref_count > 1 { *ref_count -= 1; return; } top_level.unexport_handle(); tracing::trace!("Unexported handle: {:?}", handle); let _ = top_level.steal_data::(WINDOW_HANDLE_KEY); } } } } } SeaDve-Kooha-12ed227/src/settings.rs000066400000000000000000000130711505224011700172440ustar00rootroot00000000000000use std::{fs, path::PathBuf, time::Duration}; use adw::prelude::*; use anyhow::{Context, Result}; use gettextrs::gettext; use gsettings_macro::gen_settings; use gtk::{gio, glib}; use crate::{ area_selector::{Selection, SelectionContext}, config::APP_ID, profile::Profile, }; #[gen_settings(file = "./data/io.github.seadve.Kooha.gschema.xml.in")] #[gen_settings_define(key_name = "selection", arg_type = "Selection", ret_type = "Selection")] #[gen_settings_define( key_name = "selection-context", arg_type = "SelectionContext", ret_type = "SelectionContext" )] #[gen_settings_skip(key_name = "saving-location")] #[gen_settings_skip(key_name = "framerate")] #[gen_settings_skip(key_name = "record-delay")] #[gen_settings_skip(key_name = "profile-id")] pub struct Settings; impl Default for Settings { fn default() -> Self { Self::new(APP_ID) } } impl Settings { /// Opens a `FileDialog` to select a folder and updates /// the settings with the selected folder. pub async fn select_saving_location( &self, parent: Option<&impl IsA>, ) -> Result<()> { let dialog = gtk::FileDialog::builder() .modal(true) .title(gettext("Select Recordings Folder")) .initial_folder(&gio::File::for_path(self.saving_location())) .build(); let folder = dialog.select_folder_future(parent).await?; let path = folder.path().context("Folder does not have a path")?; self.0.set("saving-location", path).unwrap(); Ok(()) } pub fn saving_location(&self) -> PathBuf { let stored_saving_location: PathBuf = self.0.get("saving-location"); if !stored_saving_location.as_os_str().is_empty() { return stored_saving_location; } let saving_location = glib::user_special_dir(glib::UserDirectory::Videos).unwrap_or_else(glib::home_dir); let kooha_saving_location = saving_location.join("Kooha"); if let Err(err) = fs::create_dir_all(&kooha_saving_location) { tracing::warn!( "Failed to create dir at `{}`: {:?}", kooha_saving_location.display(), err ); return saving_location; } kooha_saving_location } pub fn connect_saving_location_changed( &self, f: impl Fn(&Self) + 'static, ) -> glib::SignalHandlerId { self.0 .connect_changed(Some("saving-location"), move |settings, _| { f(&Self(settings.clone())); }) } pub fn framerate(&self) -> gst::Fraction { self.0.get::<(i32, i32)>("framerate").into() } pub fn set_framerate(&self, framerate: gst::Fraction) { let raw = <(i32, i32)>::from(framerate); self.0.set("framerate", raw).unwrap(); } pub fn connect_framerate_changed(&self, f: impl Fn(&Self) + 'static) -> glib::SignalHandlerId { self.0 .connect_changed(Some("framerate"), move |settings, _| { f(&Self(settings.clone())); }) } pub fn record_delay(&self) -> Duration { Duration::from_secs(self.0.get::("record-delay") as u64) } pub fn create_record_delay_action(&self) -> gio::Action { self.0.create_action("record-delay") } pub fn bind_record_delay<'a>( &'a self, object: &'a impl IsA, property: &'a str, ) -> gio::BindingBuilder<'a> { self.0.bind("record-delay", object, property) } pub fn set_profile(&self, profile: Option<&Profile>) { self.0 .set_string("profile-id", profile.map_or("", |profile| profile.id())) .unwrap(); } pub fn profile(&self) -> Option<&'static Profile> { let profile_id = self.0.get::("profile-id"); if profile_id.is_empty() { return None; } Profile::from_id(&profile_id) .inspect_err(|err| { tracing::warn!("Failed to get profile with id `{}`: {:?}", profile_id, err); }) .ok() .filter(|profile| profile.is_available()) } pub fn connect_profile_changed(&self, f: impl Fn(&Self) + 'static) -> glib::SignalHandlerId { self.0 .connect_changed(Some("profile-id"), move |settings, _| { f(&Self(settings.clone())); }) } pub fn reset_profile(&self) { self.0.reset("profile-id"); } } #[cfg(test)] mod tests { use super::*; use std::{env, process::Command, sync::Once}; fn setup_schema() { static INIT: Once = Once::new(); INIT.call_once(|| { let schema_dir = concat!(env!("CARGO_MANIFEST_DIR"), "/data"); let output = Command::new("glib-compile-schemas") .arg(schema_dir) .output() .unwrap(); if !output.status.success() { panic!( "Failed to compile GSchema for tests; stdout: {}; stderr: {}", String::from_utf8_lossy(&output.stdout), String::from_utf8_lossy(&output.stderr) ); } unsafe { env::set_var("GSETTINGS_SCHEMA_DIR", schema_dir); env::set_var("GSETTINGS_BACKEND", "memory"); } }); } #[test] fn default_profile() { setup_schema(); gst::init().unwrap(); assert!(Settings::default().profile().is_some()); assert!(Settings::default().profile().unwrap().supports_audio()); } } SeaDve-Kooha-12ed227/src/timer.rs000066400000000000000000000143301505224011700165230ustar00rootroot00000000000000use futures_util::future::FusedFuture; use gtk::glib::{self, clone}; use std::{ cell::{Cell, RefCell}, fmt, future::Future, pin::Pin, rc::Rc, task::{Context, Poll, Waker}, time::{Duration, Instant}, }; use crate::cancelled::Cancelled; const SECS_LEFT_UPDATE_INTERVAL: Duration = Duration::from_millis(200); /// A reference counted cancellable timed future /// /// The timer will only start when it gets polled. #[derive(Clone)] pub struct Timer { inner: Rc, } impl fmt::Debug for Timer { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Timer") .field("duration", &self.inner.duration) .field("state", &self.inner.state.get()) .field("elapsed", &self.inner.instant.get().map(|i| i.elapsed())) .finish() } } #[derive(Debug, Clone, Copy)] enum State { Waiting, Cancelled, Done, } impl State { fn to_poll(self) -> Poll<::Output> { match self { State::Waiting => Poll::Pending, State::Cancelled => Poll::Ready(Err(Cancelled::new("timer"))), State::Done => Poll::Ready(Ok(())), } } } struct Inner { duration: Duration, secs_left_changed_cb: Box, secs_left_changed_source_id: RefCell>, state: Cell, instant: Cell>, waker: RefCell>, source_id: RefCell>, } impl Inner { fn secs_left(&self) -> u64 { if self.is_terminated() { return 0; } let elapsed_secs = self .instant .get() .map_or(Duration::ZERO, |instant| instant.elapsed()) .as_secs(); self.duration.as_secs() - elapsed_secs } fn is_terminated(&self) -> bool { matches!(self.state.get(), State::Done | State::Cancelled) } } impl Timer { /// The timer will start as soon as it gets polled pub fn new(duration: Duration, secs_left_changed_cb: impl Fn(u64) + 'static) -> Self { Self { inner: Rc::new(Inner { duration, secs_left_changed_cb: Box::new(secs_left_changed_cb), secs_left_changed_source_id: RefCell::new(None), state: Cell::new(State::Waiting), instant: Cell::new(None), waker: RefCell::new(None), source_id: RefCell::new(None), }), } } pub fn cancel(&self) { if self.inner.is_terminated() { return; } self.inner.state.set(State::Cancelled); if let Some(source_id) = self.inner.source_id.take() { source_id.remove(); } if let Some(source_id) = self.inner.secs_left_changed_source_id.take() { source_id.remove(); } if let Some(waker) = self.inner.waker.take() { waker.wake(); } } } impl Future for Timer { type Output = Result<(), Cancelled>; fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { match self.inner.state.get().to_poll() { ready @ Poll::Ready(_) => return ready, Poll::Pending => {} } if self.inner.duration.is_zero() { self.inner.state.set(State::Done); return Poll::Ready(Ok(())); } let waker = cx.waker().clone(); self.inner.waker.replace(Some(waker)); self.inner .secs_left_changed_source_id .replace(Some(glib::timeout_add_local( SECS_LEFT_UPDATE_INTERVAL, clone!( #[weak(rename_to = inner)] self.inner, #[upgrade_or_panic] move || { (inner.secs_left_changed_cb)(inner.secs_left()); glib::ControlFlow::Continue } ), ))); self.inner .source_id .replace(Some(glib::timeout_add_local_once( self.inner.duration, clone!( #[weak(rename_to = inner)] self.inner, move || { inner.state.set(State::Done); if let Some(source_id) = inner.secs_left_changed_source_id.take() { source_id.remove(); } if let Some(waker) = inner.waker.take() { waker.wake(); } } ), ))); self.inner.instant.set(Some(Instant::now())); (self.inner.secs_left_changed_cb)(self.inner.secs_left()); self.inner.state.get().to_poll() } } impl FusedFuture for Timer { fn is_terminated(&self) -> bool { self.inner.is_terminated() } } impl Drop for Timer { fn drop(&mut self) { self.cancel(); } } #[cfg(test)] mod tests { use super::*; use futures_util::FutureExt; #[gtk::test] async fn normal() { let timer = Timer::new(Duration::from_nanos(10), |_| {}); assert_eq!(timer.inner.duration, Duration::from_nanos(10)); assert!(matches!(timer.inner.state.get(), State::Waiting)); assert!(timer.clone().await.is_ok()); assert!(matches!(timer.inner.state.get(), State::Done)); assert_eq!(timer.inner.secs_left(), 0); } #[gtk::test] async fn cancelled() { let timer = Timer::new(Duration::from_nanos(10), |_| {}); assert!(matches!(timer.inner.state.get(), State::Waiting)); timer.cancel(); assert!(timer.clone().await.is_err()); assert!(matches!(timer.inner.state.get(), State::Cancelled)); assert_eq!(timer.inner.secs_left(), 0); } #[gtk::test] fn zero_duration() { let control = Timer::new(Duration::from_nanos(10), |_| {}); assert!(control.now_or_never().is_none()); let timer = Timer::new(Duration::ZERO, |_| {}); assert!(timer.clone().now_or_never().unwrap().is_ok()); assert!(matches!(timer.inner.state.get(), State::Done)); assert_eq!(timer.inner.secs_left(), 0); } } SeaDve-Kooha-12ed227/src/window/000077500000000000000000000000001505224011700163435ustar00rootroot00000000000000SeaDve-Kooha-12ed227/src/window/mod.rs000066400000000000000000000503031505224011700174710ustar00rootroot00000000000000mod progress_icon; mod toggle_button; use adw::{prelude::*, subclass::prelude::*}; use anyhow::{Error, Result}; use gettextrs::gettext; use gtk::{ gio, glib::{self, clone}, }; use std::cell::RefCell; use self::{progress_icon::ProgressIcon, toggle_button::ToggleButton}; use crate::{ Application, cancelled::Cancelled, config::PROFILE, format, help::ContextWithHelp, preferences_dialog::PreferencesDialog, recording::{NoProfileError, Recording, RecordingState}, settings::CaptureMode, }; mod imp { use super::*; #[derive(Debug, Default, gtk::CompositeTemplate)] #[template(resource = "/io/github/seadve/Kooha/ui/window.ui")] pub struct Window { #[template_child] pub(super) title: TemplateChild, #[template_child] pub(super) stack: TemplateChild, #[template_child] pub(super) main_page: TemplateChild, #[template_child] pub(super) forget_video_sources_revealer: TemplateChild, #[template_child] pub(super) recording_page: TemplateChild, #[template_child] pub(super) recording_label: TemplateChild, #[template_child] pub(super) recording_time_label: TemplateChild, #[template_child] pub(super) pause_record_button: TemplateChild, #[template_child] pub(super) delay_page: TemplateChild, #[template_child] pub(super) delay_label: TemplateChild, #[template_child] pub(super) flushing_page: TemplateChild, #[template_child] pub(super) flushing_progress_icon: TemplateChild, pub(super) inhibit_cookie: RefCell>, pub(super) recording: RefCell)>>, } #[glib::object_subclass] impl ObjectSubclass for Window { const NAME: &'static str = "KoohaWindow"; type Type = super::Window; type ParentType = adw::ApplicationWindow; fn class_init(klass: &mut Self::Class) { ToggleButton::ensure_type(); klass.bind_template(); klass.install_action_async("win.toggle-record", None, |obj, _, _| async move { obj.toggle_record().await; }); klass.install_action("win.toggle-pause", None, move |obj, _, _| { if let Err(err) = obj.toggle_pause() { let err = err.context(gettext("Failed to toggle pause")); tracing::error!("{:?}", err); obj.present_recording_error_dialog(&err); } }); klass.install_action("win.cancel-record", None, move |obj, _, _| { obj.cancel_record(); }); klass.install_action("win.forget-video-sources", None, move |_obj, _, _| { Application::get() .settings() .reset_screencast_restore_token(); }); } fn instance_init(obj: &glib::subclass::InitializingObject) { obj.init_template(); } } impl ObjectImpl for Window { fn constructed(&self) { self.parent_constructed(); let obj = self.obj(); if PROFILE == "Devel" { obj.add_css_class("devel"); } obj.setup_settings(); obj.update_view(); obj.update_title_label(); obj.update_subtitle_label(); obj.update_forget_video_sources_action(); } } impl WidgetImpl for Window { fn map(&self) { self.parent_map(); let obj = self.obj(); obj.update_audio_actions(); } } impl WindowImpl for Window { fn close_request(&self) -> glib::Propagation { let obj = self.obj(); if obj.is_busy() { glib::spawn_future_local(clone!( #[weak] obj, async move { if obj.run_quit_confirmation_dialog().await.is_proceed() { obj.destroy(); } } )); return glib::Propagation::Stop; } self.parent_close_request() } } impl ApplicationWindowImpl for Window {} impl AdwApplicationWindowImpl for Window {} } glib::wrapper! { pub struct Window(ObjectSubclass) @extends gtk::Widget, gtk::Window, gtk::ApplicationWindow, adw::ApplicationWindow, @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gio::ActionMap, gtk::ShortcutManager, gio::ActionGroup, gtk::Native, gtk::Root; } impl Window { pub fn new(app: &Application) -> Self { glib::Object::builder().property("application", app).build() } /// Returns `true` if the window is busy with a recording. pub fn is_busy(&self) -> bool { self.imp() .recording .borrow() .as_ref() .is_some_and(|(recording, _)| { matches!( recording.state(), RecordingState::Recording | RecordingState::Paused | RecordingState::Flushing { .. } ) }) } /// Returns `Proceed` if the user wants to proceed with the quit operation. pub async fn run_quit_confirmation_dialog(&self) -> glib::Propagation { const CANCEL_RESPONSE_ID: &str = "cancel"; const QUIT_RESPONSE_ID: &str = "quit"; debug_assert!( self.is_busy(), "quit confirmation dialog must only be presented when busy" ); let body_text = match self .imp() .recording .borrow() .as_ref() .map(|(recording, _)| recording.state()) { Some(RecordingState::Recording) | Some(RecordingState::Paused) => gettext( "A recording is currently in progress. Quitting immediately may cause the recording to be unplayable. Please stop the recording before quitting.", ), Some(RecordingState::Flushing { .. }) => gettext( "Quitting will cancel the processing and may cause the recording to be unplayable.", ), state => unreachable!("unexpected recording state: {:?}", state), }; let dialog = adw::AlertDialog::builder() .heading(gettext("Quit the Application?")) .body(body_text) .close_response(CANCEL_RESPONSE_ID) .default_response(CANCEL_RESPONSE_ID) .build(); dialog.add_response(CANCEL_RESPONSE_ID, &gettext("Cancel")); dialog.add_response(QUIT_RESPONSE_ID, &gettext("Quit")); dialog.set_response_appearance(QUIT_RESPONSE_ID, adw::ResponseAppearance::Destructive); match dialog.choose_future(self).await.as_str() { CANCEL_RESPONSE_ID => glib::Propagation::Stop, QUIT_RESPONSE_ID => glib::Propagation::Proceed, _ => unreachable!(), } } fn present_recording_error_dialog(&self, err: &Error) { const OK_RESPONSE_ID: &str = "ok"; let err_text = format!("{:?}", err); let err_view = gtk::TextView::builder() .buffer(>k::TextBuffer::builder().text(&err_text).build()) .editable(false) .monospace(true) .top_margin(6) .bottom_margin(6) .left_margin(6) .right_margin(6) .build(); let scrolled_window = gtk::ScrolledWindow::builder() .min_content_width(360) .min_content_height(120) .child(&err_view) .build(); let scrolled_window_row = gtk::ListBoxRow::builder() .overflow(gtk::Overflow::Hidden) .activatable(false) .selectable(false) .child(&scrolled_window) .build(); scrolled_window_row.add_css_class("error-view"); let copy_button = gtk::Button::builder() .valign(gtk::Align::Center) .tooltip_text(gettext("Copy to clipboard")) .icon_name("edit-copy-symbolic") .build(); copy_button.connect_clicked(move |button| { button.clipboard().set_text(&err_text); button.set_tooltip_text(Some(&gettext("Copied to clipboard"))); button.set_icon_name("checkmark-symbolic"); button.add_css_class("copy-done"); }); let expander = adw::ExpanderRow::builder() .title(gettext("Show detailed error")) .activatable(false) .build(); expander.add_row(&scrolled_window_row); expander.add_suffix(©_button); let list_box = gtk::ListBox::builder() .selection_mode(gtk::SelectionMode::None) .build(); list_box.add_css_class("boxed-list"); list_box.append(&expander); let dialog = adw::AlertDialog::builder() .heading(err.to_string()) .body_use_markup(true) .default_response(OK_RESPONSE_ID) .extra_child(&list_box) .build(); if let Some(context) = err.downcast_ref::() { dialog.set_body(&format!( "{}: {}", gettext("Help"), context.help_message() )); } dialog.add_response(OK_RESPONSE_ID, &gettext("Ok, Got It")); dialog.present(Some(self)); } fn present_no_profile_error_dialog(&self) { const OPEN_RESPONSE_ID: &str = "open"; const LATER_RESPONSE_ID: &str = "later"; let dialog = adw::AlertDialog::builder() .heading(gettext("Open Preferences?")) .body(gettext("The previously selected format may have been unavailable. Open preferences and select a format to continue recording.")) .default_response(OPEN_RESPONSE_ID) .build(); dialog.add_response(LATER_RESPONSE_ID, &gettext("Later")); dialog.add_response(OPEN_RESPONSE_ID, &gettext("Open")); dialog.set_response_appearance(OPEN_RESPONSE_ID, adw::ResponseAppearance::Suggested); dialog.connect_response( Some(OPEN_RESPONSE_ID), clone!( #[weak(rename_to = obj)] self, move |dialog, _| { dialog.close(); let app = Application::get(); let preferences_dialog = PreferencesDialog::new(app.settings()); preferences_dialog.present(Some(&obj)); let was_focused = preferences_dialog.profile_row_grab_focus(); debug_assert!(was_focused); } ), ); dialog.present(Some(self)); } async fn toggle_record(&self) { let imp = self.imp(); if let Some((ref recording, _)) = *imp.recording.borrow() { recording.stop(); return; } let recording = Recording::new(); let handler_ids = vec![ recording.connect_state_notify(clone!( #[weak(rename_to = obj)] self, move |_| { obj.update_view(); obj.update_inhibit(); } )), recording.connect_duration_notify(clone!( #[weak(rename_to = obj)] self, move |recording| { let formatted_time = format::digital_clock(recording.duration()); obj.imp().recording_time_label.set_label(&formatted_time); } )), recording.connect_finished(clone!( #[weak(rename_to = obj)] self, move |recording, res| { obj.handle_recording_finished(recording, res); } )), ]; imp.recording .replace(Some((recording.clone(), handler_ids))); self.update_inhibit(); recording .start(Some(self), Application::get().settings()) .await; } fn toggle_pause(&self) -> Result<()> { let imp = self.imp(); if let Some((ref recording, _)) = *imp.recording.borrow() { if matches!(recording.state(), RecordingState::Paused) { recording.resume()?; } else { recording.pause()?; }; } Ok(()) } fn cancel_record(&self) { let imp = self.imp(); if let Some((ref recording, _)) = *imp.recording.borrow() { recording.cancel(); } } fn handle_recording_finished( &self, recording: &Recording, res: &Result<(gio::File, gst::ClockTime)>, ) { debug_assert_eq!(recording.state(), RecordingState::Finished); match res { Ok((recording_file, duration)) => { let duration = *duration; glib::spawn_future_local(clone!( #[strong] recording_file, async move { let app = Application::get(); app.send_record_success_notification(&recording_file, duration) .await; } )); let recent_manager = gtk::RecentManager::default(); recent_manager.add_item(&recording_file.uri()); } Err(err) => { if err.is::() { tracing::debug!("{:?}", err); } else if err.is::() { self.present_no_profile_error_dialog(); } else { tracing::error!("{:?}", err); self.present_recording_error_dialog(err); if let Some(surface) = self.surface() { surface.beep(); } } } } if let Some((recording, handler_ids)) = self.imp().recording.take() { for handler_id in handler_ids { recording.disconnect(handler_id); } self.update_inhibit(); } else { tracing::warn!("Recording finished but no stored recording"); } } fn update_inhibit(&self) { let imp = self.imp(); let app = Application::get(); let is_busy = self.is_busy(); if is_busy && imp.inhibit_cookie.borrow().is_none() { let inhibit_cookie = app.inhibit( Some(self), gtk::ApplicationInhibitFlags::LOGOUT | gtk::ApplicationInhibitFlags::IDLE, Some(&gettext("A recording is in progress")), ); imp.inhibit_cookie.replace(Some(inhibit_cookie)); tracing::debug!("Inhibited logout and idle"); } else if !is_busy && let Some(inhibit_cookie) = imp.inhibit_cookie.take() { app.uninhibit(inhibit_cookie); tracing::debug!("Uninhibited logout and idle"); } } fn update_view(&self) { let imp = self.imp(); // TODO disregard ms granularity recording state change let state = imp .recording .borrow() .as_ref() .map_or(RecordingState::Init, |(recording, _)| recording.state()); match state { RecordingState::Init | RecordingState::Finished => { imp.stack.set_visible_child(&*imp.main_page); imp.recording_time_label .set_label(&format::digital_clock(gst::ClockTime::ZERO)); } RecordingState::Delayed { secs_left } => { imp.delay_label.set_label(&secs_left.to_string()); imp.stack.set_visible_child(&*imp.delay_page); } RecordingState::Recording => { imp.pause_record_button .set_icon_name("media-playback-pause-symbolic"); imp.recording_label.set_label(&gettext("Recording")); imp.recording_time_label.remove_css_class("paused"); imp.stack.set_visible_child(&*imp.recording_page); } RecordingState::Paused => { imp.pause_record_button .set_icon_name("media-playback-start-symbolic"); imp.recording_label.set_label(&gettext("Paused")); imp.recording_time_label.add_css_class("paused"); imp.stack.set_visible_child(&*imp.recording_page); } RecordingState::Flushing { progress } => { imp.flushing_progress_icon .set_progress(progress as f64 / 100.0); imp.stack.set_visible_child(&*imp.flushing_page); } } self.action_set_enabled( "win.toggle-record", !matches!( state, RecordingState::Delayed { .. } | RecordingState::Flushing { .. } ), ); self.action_set_enabled( "win.toggle-pause", matches!(state, RecordingState::Recording | RecordingState::Paused), ); self.action_set_enabled( "win.cancel-record", matches!( state, RecordingState::Delayed { .. } | RecordingState::Flushing { .. } ), ); } fn update_title_label(&self) { let imp = self.imp(); match Application::get().settings().capture_mode() { CaptureMode::MonitorWindow => imp.title.set_title(&gettext("Normal")), CaptureMode::Selection => imp.title.set_title(&gettext("Selection")), } } fn update_subtitle_label(&self) { let imp = self.imp(); let app = Application::get(); let settings = app.settings(); let profile_text = settings .profile() .map_or_else(|| gettext("None"), |profile| profile.name().to_string()); let framerate_text = format::framerate(settings.framerate()); imp.title .set_subtitle(&format!("{} • {} FPS", profile_text, framerate_text)); } fn update_audio_actions(&self) { let is_enabled = Application::get() .settings() .profile() .is_none_or(|profile| profile.supports_audio()); self.action_set_enabled("win.record-desktop-audio", is_enabled); self.action_set_enabled("win.record-microphone", is_enabled); } fn update_forget_video_sources_action(&self) { let has_restore_token = !Application::get() .settings() .screencast_restore_token() .is_empty(); self.imp() .forget_video_sources_revealer .set_reveal_child(has_restore_token); self.action_set_enabled("win.forget-video-sources", has_restore_token); } fn setup_settings(&self) { let app = Application::get(); let settings = app.settings(); settings.connect_capture_mode_changed(clone!( #[weak(rename_to = obj)] self, move |_| { obj.update_title_label(); } )); settings.connect_profile_changed(clone!( #[weak(rename_to = obj)] self, move |_| { obj.update_audio_actions(); obj.update_subtitle_label(); } )); settings.connect_framerate_changed(clone!( #[weak(rename_to = obj)] self, move |_| { obj.update_subtitle_label(); } )); settings.connect_screencast_restore_token_changed(clone!( #[weak(rename_to = obj)] self, move |_| { obj.update_forget_video_sources_action(); } )); self.add_action(&settings.create_record_desktop_audio_action()); self.add_action(&settings.create_record_microphone_action()); self.add_action(&settings.create_show_pointer_action()); self.add_action(&settings.create_capture_mode_action()); } } SeaDve-Kooha-12ed227/src/window/progress_icon.rs000066400000000000000000000067631505224011700216010ustar00rootroot00000000000000use std::{ cell::Cell, f64::consts::{FRAC_PI_2, TAU}, }; use adw::prelude::*; use gtk::{ cairo, glib::{self, clone}, graphene::Rect, subclass::prelude::*, }; const LINE_WIDTH: f64 = 4.0; const ANIMATION_DURATION_MS: u32 = 300; mod imp { use std::cell::OnceCell; use super::*; #[derive(Default, glib::Properties)] #[properties(wrapper_type = super::ProgressIcon)] pub struct ProgressIcon { #[property(get, set = Self::set_progress, minimum = 0.0, maximum = 1.0, explicit_notify)] pub(super) progress: Cell, pub(super) animation: OnceCell, pub(super) display_progress: Cell, } #[glib::object_subclass] impl ObjectSubclass for ProgressIcon { const NAME: &'static str = "KoohaProgressIcon"; type Type = super::ProgressIcon; type ParentType = gtk::Widget; } #[glib::derived_properties] impl ObjectImpl for ProgressIcon { fn constructed(&self) { self.parent_constructed(); let obj = self.obj(); let animation_target = adw::CallbackAnimationTarget::new(clone!( #[weak] obj, move |value| { let imp = obj.imp(); imp.display_progress.set(value); obj.queue_draw(); } )); let animation = adw::TimedAnimation::builder() .widget(&*obj) .duration(ANIMATION_DURATION_MS) .target(&animation_target) .build(); self.animation.set(animation).unwrap(); } } impl WidgetImpl for ProgressIcon { fn snapshot(&self, snapshot: >k::Snapshot) { let obj = self.obj(); let width = obj.width(); let height = obj.height(); let color = obj.color(); let cx = width as f64 / 2.0; let cy = height as f64 / 2.0; let radius = width as f64 / 2.0 - LINE_WIDTH / 2.0; let arc_end = self.display_progress.get() * TAU - FRAC_PI_2; let ctx = snapshot.append_cairo(&Rect::new(0.0, 0.0, width as f32, height as f32)); ctx.set_line_width(LINE_WIDTH); ctx.set_line_cap(cairo::LineCap::Round); ctx.set_source_color(&color); ctx.move_to(cx, cy - radius); ctx.arc(cx, cy, radius, -FRAC_PI_2, arc_end); ctx.stroke().unwrap(); ctx.set_source_color(&color.with_alpha(color.alpha() * 0.15)); ctx.move_to(cx + radius * arc_end.cos(), cy + radius * arc_end.sin()); ctx.arc(cx, cy, radius, arc_end, 3.0 * FRAC_PI_2); ctx.stroke().unwrap(); } } impl ProgressIcon { fn set_progress(&self, progress: f64) { if (progress - self.progress.get()).abs() < f64::EPSILON { return; } let obj = self.obj(); self.progress.set(progress); let animation = self.animation.get().unwrap(); animation.set_value_from(animation.value()); animation.set_value_to(progress); animation.play(); obj.notify_progress(); } } } glib::wrapper! { pub struct ProgressIcon(ObjectSubclass) @extends gtk::Widget, @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget; } impl ProgressIcon { pub fn new() -> Self { glib::Object::new() } } SeaDve-Kooha-12ed227/src/window/toggle_button.rs000066400000000000000000000101521505224011700215640ustar00rootroot00000000000000use gtk::{glib, prelude::*, subclass::prelude::*}; use std::cell::RefCell; mod imp { use super::*; #[derive(Debug, Default, glib::Properties)] #[properties(wrapper_type = super::ToggleButton)] pub struct ToggleButton { /// Icon name to show on un-toggled state #[property(get, set = Self::set_default_icon_name, explicit_notify)] pub(super) default_icon_name: RefCell, /// Icon name to show on toggled state #[property(get, set = Self::set_toggled_icon_name, explicit_notify)] pub(super) toggled_icon_name: RefCell, /// Tooltip text to show on un-toggled state #[property(get, set = Self::set_default_tooltip_text, explicit_notify)] pub(super) default_tooltip_text: RefCell, /// Tooltip text to show on toggled state #[property(get, set = Self::set_toggled_tooltip_text, explicit_notify)] pub(super) toggled_tooltip_text: RefCell, } #[glib::object_subclass] impl ObjectSubclass for ToggleButton { const NAME: &'static str = "KoohaToggleButton"; type Type = super::ToggleButton; type ParentType = gtk::ToggleButton; } #[glib::derived_properties] impl ObjectImpl for ToggleButton {} impl WidgetImpl for ToggleButton {} impl ButtonImpl for ToggleButton {} impl ToggleButtonImpl for ToggleButton { fn toggled(&self) { let obj = self.obj(); obj.update_icon_name(); obj.update_tooltip_text(); self.parent_toggled(); } } impl ToggleButton { fn set_default_icon_name(&self, default_icon_name: String) { let obj = self.obj(); if default_icon_name == obj.default_icon_name().as_str() { return; } self.default_icon_name.replace(default_icon_name); obj.update_icon_name(); obj.notify_default_icon_name(); } fn set_toggled_icon_name(&self, toggled_icon_name: String) { let obj = self.obj(); if toggled_icon_name == obj.toggled_icon_name().as_str() { return; } self.toggled_icon_name.replace(toggled_icon_name); obj.update_icon_name(); obj.notify_toggled_icon_name(); } fn set_default_tooltip_text(&self, default_tooltip_text: String) { let obj = self.obj(); if default_tooltip_text == obj.default_tooltip_text().as_str() { return; } self.default_tooltip_text.replace(default_tooltip_text); obj.update_tooltip_text(); obj.notify_default_tooltip_text(); } fn set_toggled_tooltip_text(&self, toggled_tooltip_text: String) { let obj = self.obj(); if toggled_tooltip_text == obj.toggled_tooltip_text().as_str() { return; } self.toggled_tooltip_text.replace(toggled_tooltip_text); obj.update_tooltip_text(); obj.notify_toggled_tooltip_text(); } } } glib::wrapper! { /// A toggle button that shows different icons and tooltips depending on the state. /// /// Note: `icon-name` and `tooltip-text` must not be set directly. pub struct ToggleButton(ObjectSubclass) @extends gtk::Widget, gtk::Button, gtk::ToggleButton, @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Actionable; } impl ToggleButton { pub fn new() -> Self { glib::Object::new() } fn update_icon_name(&self) { let icon_name = if self.is_active() { self.toggled_icon_name() } else { self.default_icon_name() }; self.set_icon_name(&icon_name); } fn update_tooltip_text(&self) { let tooltip_text = if self.is_active() { self.toggled_tooltip_text() } else { self.default_tooltip_text() }; self.set_tooltip_text(if tooltip_text.is_empty() { None } else { Some(&tooltip_text) }); } } SeaDve-Kooha-12ed227/typos.toml000066400000000000000000000001411505224011700163140ustar00rootroot00000000000000[default.extend-words] numer = "numer" [files] extend-exclude = ["data/icons/*.svg", "po/*.po"]