pax_global_header00006660000000000000000000000064145761465620014532gustar00rootroot0000000000000052 comment=2b8d6f80886cd0a38e962105a74ed6b8f8b76a0d alligator-23.08.5/000077500000000000000000000000001457614656200136675ustar00rootroot00000000000000alligator-23.08.5/.editorconfig000066400000000000000000000004221457614656200163420ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2020 Tobias Fella # SPDX-License-Identifier: CC0-1.0 # top-most EditorConfig file root = true [*] end_of_line = lf insert_final_newline = true indent_style = space indent_size = 4 charset = utf-8 trim_trailing_whitespace = true alligator-23.08.5/.flatpak-manifest.json000066400000000000000000000017151457614656200200720ustar00rootroot00000000000000{ "id": "org.kde.alligator", "branch": "master", "rename-icon": "alligator", "runtime": "org.kde.Platform", "runtime-version": "5.15-22.08", "sdk": "org.kde.Sdk", "command": "alligator", "tags": ["nightly"], "desktop-file-name-suffix": " (Nightly)", "finish-args": [ "--share=ipc", "--share=network", "--socket=fallback-x11", "--socket=wayland", "--device=dri" ], "modules": [ { "name": "kirigamiaddons", "config-opts": [ "-DBUILD_TESTING=OFF" ], "buildsystem": "cmake-ninja", "sources": [ { "type": "git", "url": "https://invent.kde.org/libraries/kirigami-addons.git" } ] }, { "name": "alligator", "buildsystem": "cmake-ninja", "sources": [ { "type": "dir", "path": "." } ] } ] } alligator-23.08.5/.flatpak-manifest.json.license000066400000000000000000000000761457614656200215120ustar00rootroot00000000000000SPDX-License-Identifier: CC0-1.0 SPDX-FileCopyrightText: none alligator-23.08.5/.gitignore000066400000000000000000000003121457614656200156530ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2020 Tobias Fella # SPDX-License-Identifier: CC0-1.0 build/ .kdev4/ CMakeLists.txt.user alligator.kdev4 .vscode/ .clang-format .cache/ compile_commands.json alligator-23.08.5/.gitlab-ci.yml000066400000000000000000000012401457614656200163200ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2020 Nicolas Fella # SPDX-FileCopyrightText: 2020 Tobias Fella # SPDX-License-Identifier: BSD-2-Clause include: - project: sysadmin/ci-utilities file: - /gitlab-templates/reuse-lint.yml - /gitlab-templates/linux.yml - /gitlab-templates/linux-qt6.yml - /gitlab-templates/windows.yml - /gitlab-templates/windows-qt6.yml - /gitlab-templates/freebsd.yml - /gitlab-templates/freebsd-qt6.yml - /gitlab-templates/android.yml - /gitlab-templates/android-qt6.yml #- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/flatpak.yml alligator-23.08.5/.kde-ci.yml000066400000000000000000000015531457614656200156300ustar00rootroot00000000000000# SPDX-FileCopyrightText: None # SPDX-License-Identifier: CC0-1.0 Dependencies: - 'on': ['Linux/Qt5', 'Android/Qt5', 'FreeBSD/Qt5', 'Windows/Qt5'] 'require': 'frameworks/extra-cmake-modules': '@stable' 'frameworks/kcoreaddons': '@stable' 'frameworks/kconfig': '@stable' 'frameworks/ki18n': '@stable' 'frameworks/kirigami': '@stable' 'frameworks/syndication': '@stable' 'libraries/kirigami-addons': '@latest' - 'on': ['Linux/Qt6', 'Android/Qt6', 'FreeBSD/Qt6', 'Windows/Qt6'] 'require': 'frameworks/extra-cmake-modules': '@latest-kf6' 'frameworks/kcoreaddons': '@latest-kf6' 'frameworks/kconfig': '@latest-kf6' 'frameworks/ki18n': '@latest-kf6' 'frameworks/kirigami': '@latest-kf6' 'frameworks/syndication': '@latest-kf6' 'libraries/kirigami-addons': '@latest-kf6' Options: require-passing-tests-on: [ '@all' ] alligator-23.08.5/.reuse/000077500000000000000000000000001457614656200150705ustar00rootroot00000000000000alligator-23.08.5/.reuse/dep5000066400000000000000000000016261457614656200156550ustar00rootroot00000000000000Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Alligator Upstream-Contact: Tobias Fella Files: src/qtquickcontrols2.conf README.md src/alligatorsettings.kcfgc src/alligatorsettings.kcfg Copyright: 2020 Tobias Fella License: CC0-1.0 Files: android/res/drawable/splash.xml Copyright: 2020 Tobias Fella License: BSD-2-Clause Files: alligator.svg android/res/drawable/alligator.png logo.png android/res/mipmap-xxxhdpi/ic_launcher.png android/res/mipmap-xxhdpi/ic_launcher.png android/res/mipmap-xhdpi/ic_launcher.png android/res/mipmap-hdpi/ic_launcher.png android/res/mipmap-mdpi/ic_launcher.png android/ic_launcher-playstore.png android/res/drawable-v24/* Copyright: 2020 Mathis Brüchert License: CC-BY-SA-4.0 Files: android/res/mipmap-anydpi-v26/ic_launcher.xml Copyright: None License: CC0-1.0 alligator-23.08.5/CMakeLists.txt000066400000000000000000000052431457614656200164330ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2020 Tobias Fella # SPDX-FileCopyrightText: 2020 Nicolas Fella # SPDX-License-Identifier: BSD-2-Clause cmake_minimum_required(VERSION 3.16) # KDE Applications version, managed by release script. set(RELEASE_SERVICE_VERSION_MAJOR "23") set(RELEASE_SERVICE_VERSION_MINOR "08") set(RELEASE_SERVICE_VERSION_MICRO "5") set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") project(alligator VERSION ${RELEASE_SERVICE_VERSION}) set(KF_MIN_VERSION "5.90.0") set(QT_MIN_VERSION "5.15.0") if (ANDROID) set(QT_MIN_VERSION "5.15.10") endif() find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) include(FeatureSummary) include(ECMSetupVersion) include(KDEInstallDirs) include(KDEClangFormat) include(KDECMakeSettings) include(KDEGitCommitHooks) include(KDECompilerSettings NO_POLICY_SCOPE) ecm_setup_version(${PROJECT_VERSION} VARIABLE_PREFIX ALLIGATOR VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/alligator-version.h ) find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Core Quick Test Gui QuickControls2 Sql) find_package(KF${QT_MAJOR_VERSION} ${KF_MIN_VERSION} REQUIRED COMPONENTS CoreAddons Syndication Config I18n) find_package(KF${QT_MAJOR_VERSION}KirigamiAddons 0.6 REQUIRED) if (ANDROID) find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED COMPONENTS Svg) find_package(KF${QT_MAJOR_VERSION} ${KF_MIN_VERSION} REQUIRED COMPONENTS Kirigami2) find_package(OpenSSL REQUIRED) find_package(SQLite3) else() find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED COMPONENTS Widgets) endif() add_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_URL_CAST_FROM_STRING -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_USE_QSTRINGBUILDER -DQT_DISABLE_DEPRECATED_BEFORE=0x050d00 ) ki18n_install(po) if (ANDROID) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/android/version.gradle.in ${CMAKE_BINARY_DIR}/version.gradle) endif() install(PROGRAMS org.kde.alligator.desktop DESTINATION ${KDE_INSTALL_APPDIR}) install(FILES org.kde.alligator.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) install(FILES alligator.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps) add_subdirectory(src) feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES src/*.cpp src/*.h) kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) alligator-23.08.5/LICENSES/000077500000000000000000000000001457614656200150745ustar00rootroot00000000000000alligator-23.08.5/LICENSES/BSD-2-Clause.txt000066400000000000000000000024101457614656200176130ustar00rootroot00000000000000Copyright (c) . All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. alligator-23.08.5/LICENSES/BSD-3-Clause.txt000066400000000000000000000026641457614656200176270ustar00rootroot00000000000000Copyright (c) . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. alligator-23.08.5/LICENSES/CC-BY-SA-4.0.txt000066400000000000000000000432751457614656200172450ustar00rootroot00000000000000Creative Commons Attribution-ShareAlike 4.0 International Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. Using Creative Commons Public Licenses Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors : wiki.creativecommons.org/Considerations_for_licensors Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor's permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public : wiki.creativecommons.org/Considerations_for_licensees Creative Commons Attribution-ShareAlike 4.0 International Public License By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. Section 1 – Definitions. a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. c. BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License. d. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. e. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. f. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. g. License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike. h. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. i. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. j. Licensor means the individual(s) or entity(ies) granting rights under this Public License. k. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. l. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. m. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. Section 2 – Scope. a. License grant. 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: A. reproduce and Share the Licensed Material, in whole or in part; and B. produce, reproduce, and Share Adapted Material. 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. 3. Term. The term of this Public License is specified in Section 6(a). 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. 5. Downstream recipients. A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. B. Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter's License You apply. C. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). b. Other rights. 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. 2. Patent and trademark rights are not licensed under this Public License. 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. Section 3 – License Conditions. Your exercise of the Licensed Rights is expressly made subject to the following conditions. a. Attribution. 1. If You Share the Licensed Material (including in modified form), You must: A. retain the following if it is supplied by the Licensor with the Licensed Material: i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); ii. a copyright notice; iii. a notice that refers to this Public License; iv. a notice that refers to the disclaimer of warranties; v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. b. ShareAlike.In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply. 1. The Adapter's License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License. 2. You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material. 3. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply. Section 4 – Sui Generis Database Rights. Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. Section 5 – Disclaimer of Warranties and Limitation of Liability. a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. Section 6 – Term and Termination. a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or 2. upon express reinstatement by the Licensor. c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. Section 7 – Other Terms and Conditions. a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. Section 8 – Interpretation. a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. Creative Commons may be contacted at creativecommons.org. alligator-23.08.5/LICENSES/CC0-1.0.txt000066400000000000000000000154041457614656200165020ustar00rootroot00000000000000Creative Commons Legal Code CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. Statement of Purpose The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; ii. moral rights retained by the original author(s) and/or performer(s); iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; v. rights protecting the extraction, dissemination, use and reuse of data in a Work; vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 4. Limitations and Disclaimers. a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. alligator-23.08.5/LICENSES/GPL-2.0-only.txt000066400000000000000000000423261457614656200175420ustar00rootroot00000000000000GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C)< yyyy> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. alligator-23.08.5/LICENSES/GPL-3.0-only.txt000066400000000000000000001032461457614656200175420ustar00rootroot00000000000000GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright © 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 . alligator-23.08.5/LICENSES/GPL-3.0-or-later.txt000066400000000000000000001032461457614656200203060ustar00rootroot00000000000000GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright © 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 . alligator-23.08.5/LICENSES/LicenseRef-KDE-Accepted-GPL.txt000066400000000000000000000012261457614656200224040ustar00rootroot00000000000000This library 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) at any later version that is accepted by the membership of KDE e.V. (or its successor approved by the membership of KDE e.V.), which shall act as a proxy as defined in Section 14 of version 3 of the license. 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. alligator-23.08.5/README.md000066400000000000000000000032361457614656200151520ustar00rootroot00000000000000# Alligator Alligator is a convergent RSS/Atom feed reader. Download on Flathub Nightly Android APKs are available at [KDE's Binary Factory](https://kfunk.org/2017/11/17/kde-binary-factory/): - [Android ARM](https://binary-factory.kde.org/view/Android/job/Alligator_Nightly_android-arm/) - [Android ARM64](https://binary-factory.kde.org/view/Android/job/Alligator_Nightly_android-arm64/) - [Android x86](https://binary-factory.kde.org/view/Android/job/Alligator_Nightly_android-x86/) - [Android x86_64](https://binary-factory.kde.org/view/Android/job/Alligator_Nightly_android-x86_64/) # Building Note: When using versions of alligator built from git-master, it's possible that the database format or the name of downloaded files change from one version to another without the necessary migrations to handle it. If you notice bugs after upgrading to a git-master version, export your feeds, delete `~/.local/share/KDE/alligator` and import the feeds again. ## Requirements - KCoreAddons - KI18n - KConfig - Kirigami - Syndication ## Linux ``` git clone https://invent.kde.org/plasma-mobile/alligator cd alligator mkdir build && cd build cmake .. -DCMAKE_PREFIX_PATH=/usr make sudo make install ``` This assumes all dependencies are installed. If your distribution does not provide them, you can use [kdesrc-build](https://kdesrc-build.kde.org/) to build all of them. ## Android You can build Alligator for Android using KDE's [Docker-based build environment](https://community.kde.org/Android/Environment_via_Container). alligator-23.08.5/alligator.svg000066400000000000000000000167351457614656200164020ustar00rootroot00000000000000 image/svg+xml alligator-23.08.5/android/000077500000000000000000000000001457614656200153075ustar00rootroot00000000000000alligator-23.08.5/android/AndroidManifest.xml000066400000000000000000000071511457614656200211040ustar00rootroot00000000000000 alligator-23.08.5/android/build.gradle000066400000000000000000000063011457614656200175660ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2018-2020 Volker Krause SPDX-FileCopyrightText: 2019 Nicolas Fella SPDX-FileCopyrightText: 2020 Gabriel Souza Franco SPDX-License-Identifier: BSD-3-Clause */ buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:7.0.2' } } repositories { google() jcenter() } apply plugin: 'com.android.application' apply from: '../version.gradle' def timestamp = (int)(new Date().getTime()/1000) dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) } android { /******************************************************* * The following variables: * - androidBuildToolsVersion, * - androidCompileSdkVersion * - qt5AndroidDir - holds the path to qt android files * needed to build any Qt application * on Android. * * are defined in gradle.properties file. This file is * updated by QtCreator and androiddeployqt tools. * Changing them manually might break the compilation! *******************************************************/ compileSdkVersion androidCompileSdkVersion.toInteger() buildToolsVersion androidBuildToolsVersion ndkVersion androidNdkVersion sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java'] aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl'] res.srcDirs = [qt5AndroidDir + '/res', 'res'] resources.srcDirs = ['src'] renderscript.srcDirs = ['src'] assets.srcDirs = ['assets'] jniLibs.srcDirs = ['libs'] } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } lintOptions { abortOnError false } defaultConfig { minSdkVersion qtMinSdkVersion targetSdkVersion qtTargetSdkVersion applicationId "org.kde.alligator" namespace "org.kde.alligator" versionCode timestamp versionName projectVersionFull manifestPlaceholders = [versionName: projectVersionFull, versionCode: timestamp] } packagingOptions { exclude 'lib/*/*RemoteObjects*' exclude 'lib/*/*StateMachine*' exclude 'lib/*/*_imageformats_qico_*' exclude 'lib/*/*_imageformats_qicns_*' exclude 'lib/*/*_imageformats_qtga_*' exclude 'lib/*/*_imageformats_qtiff_*' exclude 'lib/*/*_qmltooling_*' } aaptOptions { // different syntax than above // see https://android.googlesource.com/platform/frameworks/base/+/refs/heads/pie-release/tools/aapt2/util/Files.h#90 ignoreAssetsPattern '!ECM:!aclocal:!doc:!gtk-doc:!iso-codes:!man:!mime:!pkgconfig:!qlogging-categories5:!iso_15924.mo:!iso_3166-2.mo:!iso_3166-3.mo:!iso_4217.mo:!iso_639-2.mo:!iso_639-3.mo:!iso_639-5.mo:!kcodecs5_qt.qm:!kde5_xml_mimetypes.qm' } } alligator-23.08.5/android/ic_launcher-playstore.png000066400000000000000000001572341457614656200223250ustar00rootroot00000000000000PNG  IHDRxIDATx^xTeqtuw]ҋ"{]] D@$t{IHBˤJL&Lw&3L2\oUst(wB!ؖB!@! B @! B @! B @! B @! B @! B @! B @! B @! B @!ؠA!BBA4!DBA4!DBA4!DBA4!DBA4!DBA4!DBA4!DBA4!DBA4!ԡEB!B @! B @! B @! B  Bm@! B @ڔ2(t녌Eqfm8N$.q+E$#F#sK"ӣ?{ !:M(q,~HZ~o|~Q>?пx,;inwBXϯ=l2.K lB54U+ul! CD904`f%hBH{GX-vax,r6z%.2{b`,| u-q"Y*"#x!=@;?: }< /¦/;#aG  !@ ɥ#q[Xnx=x2?ŷصg* _fK;yD_>2 !@FتJȔ&@i W+zHtF`鏡җEw|߇Fpߟ=K?f ܊w7_}NyD()xA.|_j/] =2.?ݹ! W|?펞S]_??P?g~ͤw"n5w,KS1ر,EB5P, !c/n]s}{0^R=օ.e2C&cXG<5C'`ϰ{ϗ8AO!@X%y9.;~>ug_GWQ^13tب'<%f ̅׎Q1@BZ bQXgbW,~`"O>{zo_H_N#ȧ^ o݁'#eOcAr \<8n'\ÖbĮn}!% <1[z0Q :Rׅ~!^.;x@n)'.#R y HQ,ߋQ8`>v@KO7B1b\v+ޝ{q//]'׋?K_g<,BةWc0y3d8%)0ĉew b1o~ܻ(Vs;{kԅ@-_6!00쟄8Pp3ʜ!D "݅gݿjJuߋ=( ߗ5`G;,Ds"^K‰=:+B |Kvv_ݭ~w w[gٸy qƼ2>LK<`gpƮ+whB̆QGƠ_k`ƲLx~Ο=!@|Ax%i3Ju@}}3 a9:X@#b4H+r퉇# ߹;_>w*t?+=sGr|~~|c`шsk "V>q.B0;{/&|{k@jL:ox/xnB y=|wvgwо@Ovm ;R&>.>L Y.BiBE@Hk;}؅{|8p?ܑ <>:3{蜻qz:]DŽU=Q k@@ _'C~ |[k@jLHoX2 qv}#4 4 jJoFЪX7^[a?'maB#OāD򟝅C# jJ\c`6&?`a翍=a><s7毨v 4 j]z`D!W{`}?̃ 16G~0e ;ATӏ (A 6)nhG!' _ߊ_7xhizj`70l8 4i8i!FwQٓG_J JXvapY; D7v е'TQB?@>Nڇ_JcC1gFx~'&#`Bqo>x=`6&'ݧ2u-O"<Ӓ` #@;mݵuQ-ufF!phǞVwb qi_'d ĞYS~ct`0"tɿ3chW;6 Yb%;)lD_9)Ŝ]1S}phxw$80sRf hw,S:[Po3 0990u LZCv 7il j hzٞo%oa89P;bhOٞ _=d|ay<o4Ɯ#B@Z\ D=aK=9x14! R?z@~cґ886?-r1X("ťsCOo0C |cf$a81hbh/M]>90u LBי@AM4HtÓ7?3G";NMi@b[hdcȏmg_>9 on,^8>CGw4Kww='@bط!m]Xӎh>L;CA/i Bl ؇[t+Dm[Oj8;*[vxAp8ӊw4Lm@Z; BD۲'ᇣG`d8*0}|޹]*j4H(q#k&--_Vu,vRu!`| |_g7F! jr`D!mq0,qo7gL9%Vqߐԙ4iRn8IvA6u~C!7gWNl,2G)!@ZUkOtpF QmK^K؊?w|"cppf^k:3Bڙ?hBZQ’;d=ĸ am n]bzc5 fl̐F.@ihVW [ƭI U;$î)m`ԑGCfOt9pk|S1Mz7o]R~$@f4ih8݌mBhq1co}7~$δ m@,*tx8tz5z%~3~='ğLJa_W.x{ԟm?F!mW bG.CvcW7FGs&?;m_B@,nͦWq_̩I욀4v4UX :Wx>n#~L>!v^}#vt@@/BxAh  ,S]G:!M0by4U8I<ONU]YSQxd*2WT{q~ޭ87uԍ!u  ~yh4nplIL@X$ 5| JQ!e]uG.ڇq!/z W/.HKM3U[ښ*\*ŴTvjsOBHˠ@,jqo\t#1"~?IR!ƴ,G!O^5ըR*Mb!k͐blUv/B̋;?Ơ0!–t |U~f'bW |AmETWbz$ OF}BlBZ bQLB!–->Y ЫgB"cQ[[E_運%Rte񛐽CkMRP4F!-Sq![Y~0gR5?{`\qϭG TfbF|^kB#EX̖u/B-|c'cEXaQ8u@-NH@HK@,|aW߃IB 16b QH>uky ])8Ϟ4PV!41;݌ћ7bK)C`a\p]wͽj(?[Yo Bԣ@Z]{pKaKz2z~JoI1f?{PAQ16+gQ~A!4Qiu_aKz/n7%kf x?3aqxh@YY(|؛F! ?Oၯ<1!)@1 >CgF'uܚ/8#?j8oϏ|Е@24H*p{碷[Q0#@N i?4I'Nl/³([]c Dߜgg hV~!68v% `d 09">aMM[ٮ_KW!gp̿]@K#Su` Jv pМ103B _W7&^Up9(fꇳS;`9u#` j4 oƻ^[}Q+s|cYáGYyFzTOd.} !W(@HhVQ.1(A% $2|S???6 p wA87uS i4H(Y V>VwF<>LŒp? qEue16 g'H[x7F; U9vǴÄ[ҝK| ᣯov/G>b/6ʲ vF֪72Y=|SG_:U:G~"lIl7" v`fv.>zqy'Pxx2?3zJ7<*F! -?>B[Jp7?_Ǿ1,%=*P?bM ;zzni]7Ŀ~ Gbغy!–40b1~N掁?㼱xgaK$n4Sw^zբ\@]H&")ӯ `O bKhU .EE_xuD?xD>.LF/(Y"uvߺbя??_E8v"l)$OFƟ1W ?a-W&ӑ0RoBo#44 @ZTs3 =\B07 ݍq|_1pa\q0zu1- >Aʬ2⯓F#0Eu' !a1G`d ű!&%oPM|9kưP2_KH{G҅]^!–?Z?OQ0?ze(J\t \AUu4 jKɫ"g{8onl~i[F^p4` -k|bKD:bGPGF gBbq.5Cŋ| k؃eUڪK@zNihQx3|\[B_1ۄJG"!:ep.]FUv]@RT:5CO1 >ubKQ+1b`̇%v]xXy"\bhO \;!?7 mv`̕F_߄4H8z+><3zZ\P7?'@}0ã|&AP಍%Fuy. }@3O#oы[B0U?!$ˣCw|3S [6twTUUA j.5Rw19:4H;E]clYz1[aDA!7=#gef F ˸Rxүy7Fih;nD%F>Y }cF3QqI/bSeA;Bn\T[T$EW79` 2랐1$1x!Ɩ ?'6JhoG"2* Q",:Nt5%B\"yHc@4qA-jH?i3nB=@̡̪ (DIq!4mh(jP~emf2FU9/B»7&@Ĭr{bպ !^n'|9FO1_gL^,{~ou0(k?pvZ)@8X>2 FgP8'iB6&%%9QR'b!@ vUiSGjQSA#].R7$MM#4Yrv}."7 C Ao9V~S:6YܟEI#=dF"c(dn9#?| $hϠ %V0tGtGץ( i3{ 㯓=Fih^t7`ve [1{1``036m¯::o!M팔9"q/} k"sdnG#k8Ga^Aaa;:P]\Uyp  b6%]qh-pzXe&K1c>#x~O7oauEʼۑdYۿGA֡iȏڄ3a^wPhNڇYצּ5 PYA}FO#u4d:7[BPw<?J~܅eS^5B-Tg#iFމ:BJ(h#jtn Xᑁڪ"}V/! m b6ݣ[EP3~rǚ_¯F!2S Ady9~FΡu@уd$CS:Jpc/}q5b.phd̻U>/}: f~<cK;l;, %CG~v`kMm(efd.; 4G~v'h;c@!!FVr{gbwXsS4)rN"{˗e(߃v b44Bb`,vTPu2 BѨtX7^4je B[[7<c 7fwxW!:CA@1ւR `4w0 C% v bl #F d#֌LЏñb|-R|M6| (لdoy h;؇UWGQxOEH$ ..; 1=`1G\)! L"p'OVcc4f<2CA̎ -}T, 9rt:X#! =˟} [C-s``ur>(D__pfZslq5Rvl uF](<3v]+h!PSgd<$ ٩#0nba4*y {cB-e3 @#cηv5}.ؒ+\ >Y}#E sS).;*+ \q %(\lGnU,J u cw~!ĸ vţmܑO>p5|}}]!DR+\ >MI_p= %XP.FX s_&P{#DAyhvK^,[!0y_eB>~bK#p57Wˣ!S9fy{`ּC.$AΒ1##JMZhS6zCc6@Sc`t7ۿC!D__''ĸW|̕HvUWPXh21̶jp/rW&d D( 7#_Qqc@_Æ Oa \ >Jǿ1CPn ;v`m . oȨ# +EHK@sCܚxM ko6S~; K]\ >j!WBNg4G<=PZZK4rf ־t?JiVF(vxcB[]Kn.!Ƙ2#{5F!̭|CySߌaƈC@;[82z!B>|r%+n{NC {Ȑkuj, ϣ5 8Ŵ- 1nmBĦ?څM??C/{ p5\ >uB{ ϬY4ǽPRԀ|ł^ҷҤxBytwi-4"= ;C❨By|a/WlV!JW.M_\,㶣Ts+*(5.Dd!<;D]+Ƴ^ Anm؃@ϛ[|d1-|Cp5_! -CiQxSi(T)@_lf{}nIK@dA} >Anx6b?" Ç6 ~>o_&kM\\ >j!WB s FYQxSj`@ PȰ$D4[JWB2] ܺ!p/@h>ٷP`!2:"} hfa Y2"lQħ1˄?ퟏ#K9WR|ĕfn#of$)z{~;->p4jP;S.:4HK@%u } >A.x6|=Fy)Lht 7Sv|^qbB]\ >JWbЕϟYO! Ըfh@3O H#(d4#N3@=i?1ʭiPb>8Ħϋw2q+\ >J͔@琷GlkPMj wB]!GJo9E%gBP"|cE*/ʴ Ϡ`ȜU?hmY^8JWR|WhN}{vK kf7!(@TP~҄һqۆc60x _K!ccCm8"gB~ >G2x[kQyb??LRo2J:J#@o *Kּ' 1[jdvy[DazhrSSj/B6?&Bu$7A3FiQw=c'Q%EƇc}S^{ r g|r%G\)>jǿ]d{<Q%B >NSUQ9."Ӯ@@qMCq,!ĖKt:?FF;!? Ũ|Cp5+\ !̙=UE`TAvmk.,9wC{_? bԞeOBl)j|)ğg,O?&<=X )\ >JWR|cߘ wG( Y MQ!ȧ~x#S6@1|+=½1$j4710y͏8῅ 89 |ĕr%G\)>j7UCS'S` *# ϣ@LA4}xkaKz*l->9 }|X82z! OORvq\ >jW|ԛ+Ӯ rܟ@aBi&`*SbQe8gϣ@B݇CG!–/"?j]qg!} c>JW|#p5+Q^vކa(b.Sxp;Ȟ]>Fi K;O%H*K ?1x|?k{W|ȕq\ }l;P7E'QCq冧jkPyl'򗿌]hchz7ax舽`K{"t-Eh c`|F!6>JW|#p5+!_ߌn]h@i!)Ẁy#ˮ}^0=]4߻ <{O plI}]J|{Xo_J4x/#p5+\ >JWBSPt·O]P]] Ke(qB}(DG#h PoG4^m/!~wݴ +\ >JWR|COsymdgT\>/@w]=9  e 82C~B|ckQ>ߘ7hp/#p5+\ >JWBܛ`(:MQPUt%!{N!a#FGs+|!֠w ^ ߂c@}Cꆀ10#o r-MR|Cp5+\ >J1W*.hC}' Oh(m35D ?n};[A18r~C1cdO˄|&/#p5+\ >JW|Ѕx (_ {hC@;jQy|/>@>F4lTžu8wk- YBaC7wLgG\)>j!W|ĕr%!{w; 0p4@#@Aˑx4kG#1_Cna5]kKrf ޭ!E[1|mwBoLp7wW|ȕq\ >jWx7@ST 2i\G@MEg!gvO!0G4lHNX #v}~Bpͭk̟|޾V1qވӓ[& p5+\ >JW|oHC(MApPc={ch&6l~'rMY; FШ=ZP29Cx[GW|ȕq\ >jo]Gh K)A(XBa#FMPIڵya}dV\qz! 7[%_7M`&ifdA&fP(N܇qT^ښ*\<y [bk >B\1uB\]7K'@|O& oL'QR|Cp57W^(M~pbVI_zC@@;U4+,y>~ ZW=P;>) oL7p5+\ >JW|cT}l%…pQեY(!Ğ?B) ދ;@y-_'=KoCͺFBĕr%G\)>j!W|ĕ}Wy<⨵ N */VJ1ho,4l v"uao,^* <2-~~NmR_]oDa!Ic!D\)>j!W|ĕr%G\)>3o MF {fnb@Ɂc#`VG v@;|=͟كu E>H`>C`dL\Fw-r%\ >jW|ȕq_9{`phNT;ÂʊP 9z7&=1F@D ) 'nO`Ə_y7Ӷ_?O&6Fƪ_"o?pbܿ7p+\ >JW|#}Qά[Be(JEfşF@& @̣x^~= _cش9Z2֬x;=ŏ D:nwudCذy,X7|wgG<#sw xu}Fv|wMC"h޽A!,L׫< R$uIT0ie&ӛ{Ǣ$O{J3bQM)iJWR|Cp5+%D9s`H (/)B剃]pxSn0AvNY)coƾ_Ir92̳@B}P61P7FF_Kbӏ?48;Y#qG\)>j!W|ĕ\9{!o[(\+_P^P7wo|v$`6y !>^?w~ +k&+Y/?g F4|M~c|I|ĵnB}/{W|ĕr%G\)>J&P=(>͎/7%N  =s;!ez}훀f+ۂˇF1b >|VH#ǟ o8K/# Ӻ"APzG;}?ǘ|ĕr%G\)>Jܾrގ=?,3egyct~hunġ)g(ҲY}b /܇;7&qr|.#n+Fa*hRbP j0Rg#J}1JWR|Cp5+G\)>rA(Iڃ؍ȝuux|i6=X}=cȞkz:ie=}Z6|}P?O !;`~uNfCߔt'w"JSQZSDGxv݅7p5+\ >JWR|ĕ#n_?hP|WϣvӤwCv^ˇoI{`Hn|j ƈ7UfşIFd|M276}doeY'Pz`msoCʔB\ >JW|#q43:&}7F@dsw\& #[GWヨ}G>:Eׇ;f?H6@>Jd.~j.@&婑(Y½cR,Ğ\ >JW|#q7&yG)4 {aʗ厯qL:oeäX@?oYg^k|H_prvEhV (?^S-/o>jWR|o mKes;kCSڵǻ^.AY9"pd,S;SM\ >JW|؛F@nŗ7/+DXVbh>#JW|#q] mC]م}u]?b]^ ی@!T>{|8c8K_pXh>E\|U*@ѝ(:89}RTCD&3<\<+gW7c爿GСiG4s;#NC5GMK;x.b-^ڄc ؟/,ע6_a۰o˾m❈X/jd35X^ǃmscz8dތތ/a o=%ؒCgPpM&JsqP}cX9ҷeHzC> Y.3n{soM@ckup{@ __!(Xs FBK.U{Yh o\p{q\ >jW|#~iXv1/ݱkɓxoOdv=}1(τh"R9jzս-}_~)pMڋnԄ|ԛ+mV碠). ȯjTfj!W|ĕoniC:4],/Fǯǽ'2/obR~,4J ݖT>χ0"d &-Z);o?#kl>u"+WصǦjQs I[]E:p"Ao>j!W|Cp5+Ň14KPRΟNYB\bQe?U] :^ҏɻ<&{ٰm3!1xncc[|ȕg/1[P*v@M8\kT±( F$Ľ)|Cp5\ >jW)iX6;w/Aj\xJ)/iu2# £!+VVN|_~o~.Ľ)'~p5+_'Q8C}VڀjhŮxvݑ6Ŵ!\ >JW|ȕq74,Mݰuxv$!, -؟wZ~w^W.bGq|J?^ {?Wk2C~6<1{?"d85_BĕC}^A;8ř'_4+G{V_A剃(hrW|r%G\)>J67uŏ= Qi~x9r=Vǣ6b^h!kac7 A13!~NO?!J!W1i[hғh;PyS*T>-#k}O W|r%G\)>jkJgϓѦ@܎rNJs pȄ8UQj#⫪e,~WݵzJވ! H1M^'Ľ).?ys!W|tD֪!Ф!@Sg|Cd)\ >jW963E?B/o!*q{v=؜)\gq@zo~fXm߾V|cX7$uBܛ!k+МHMPh{fS{PyZ,y 3zJCr%+\ >j!W|ĕmN >Ϋ 9HOؕskZ>~K.T_D0<Z>,C |'ƭU|ctgNSw|Еty {KU]=G.Ron*>JWR|ĕq`6h61tJ+5Ml/pY ZoA|3"o~Cc*?χ\ >jd,yGUmXzX~ U@zDP){N:H J $w.]u!&gwfRB!#t`.݉;^: *r@%. ,Tz:/qgͭz "d=VZQiWDK~h兖;Q)D-^ cs"? 6pq)+@Q0:?X(fڃwq$n+_`bZWlՑ#vmmGH$}Nl/axw - qz*diIi Qеp4_i6mQ_0&;|B՚dk?O+< ƨHT-=AjPsw.3(xsP@ \[ [z #C}u1| -Sݿ#~w)T2PJ\*qY@%. s~ uKHf;Mn^;|Z>֌}T?33>lŴ_>PNBͰ9 `m¶`_S UgXe0eĭi 3 #  Yl ةw2Tz  yCʣۖ(g -T7\7l߁&+ {@y͖ټ;L[3/_ؕx.!9hLA@w#_9'Dɛ\*p=PS.~ DFj }J>ܽۗ})PJ\*b{ ycxxA$Z{ ͻJ{TGJ&tiyi#/ ' kD[^{.{(c4 a/s }-jT g@QjP@*{?.DA_@!3]ܻ1E{Э \TPB.  p >CCߘ8eoNˑ40jT/~ ՚tip%6j%(ȟ) ȿE;X'§,\*p=ĨpuwHOv-K~{32q3>*p=PB%. ,Tz7\RmEO8чC)/bxg K7mE-ڗWW^՚v5ok>f?gM!o z-\G[Sv4toMa ' و"NLTPAVF>+sBFX^!۷=73itpu|iA,TPB*_{c,!`3ؚ'ckeҾP9t%b2b䏟ɾe'kAv^xQ`p%|km |bR4g7 Z@w39zYx lEl% V0( ??R[nk/i{Wq4DU <؀ xÉ8\HkޓXE}>JvO#FnHTwDr6,xul|^ ^a$<>/%_KQs<YHOC9D;7p'N e;*p=P*|50^tq;SWz3se% O$Tz7T0,8юCIu-ήD,u x%v^A=sZe>s~ KKTKIe*^Wii')7)m^g7o nAmwovAdձ8*p=P*x-8C~*D~M\Zŵ펗W;w8߇K>ZƝwlw*XF97F))?y??']a;PB*qYsEՑv*)!l@h@f,9 +Aٛ_EB%. ,TPP[3á? D,Q=|-"ӮGZJZ:0G=j4}ӗ)KFzx}\ԍخl~AZ9еh@*qY@%. qK~ȟ u>"v\)A@%. ,TPP 8LzlwO$b^t5|gPQ'Ao oð={XH%. e7GܲzH;0_BowO#+|!|n *qYe \T\1 pwǨ>P%x?0"}حm~7$lO(@V?i:@7(*x5Fyf(~5Do&Mj$H_燊 \TPk!ny ȷp5< [:[5@%. ,TPPga5MqDݽM%vk I)4v a{GL߹_z-yr{V16 ]&bUk%q;\*p=PBn +-Hnw!sX$WG=')7Tz0ppej) ^R>35]*l~^~4=a媶 W**m |mBCVO bJdB? Tz ]UMsFru@v?+E&GeJ\TP*p=P;C8Dj $b2L0mav}M%}N/Y'-c,k5"p(|5dC@Q5RTz\ kZ"T 2,nd>wαՑ:oT \TgІCks^"S]ݸy B:σKVmp{opݵRn\ی&LaE H*CD[eCF= aC;͂ݛwS +dUA옗B%. e7Tz73X k軡Lu؝t>+xv/_AYwM6τSΗ\{Kf  #r[~F`C[éK₎@*p=PB\z[z \  ķ !3,8?MA2P@*qY| - {<Ce_e`:pwm [#]]o|gl7 4ebmZTV=s@%. Vʎ}c_Ak?]8(HC-kO4ǝ3 s?Gk\*p=PBko@g0܏P} s'f_CdG(|U }&zb/;WUC7`40QR k#n+-AE.e7TzRCctiQ$6d%]9B vo>Шc_Ͷ~>g` >bPo~pQ1ZÀ@i\_*ukPX@%. ՈRIޣv }ʵ,Xl[woɝH 7 TzP\q3`䚦x8A$h١54^.v;d-(Gm9^ @GYApG17,Tz7G쌏?Sݻ6>[؇ ߑ0}ĎzVSes! 7v=6vśޓ!O$޾NNklo2?FN/lw>.\sB 75a &3#n ' \TP ^ q*!%lғ ҧ2T^edMG/7F.\*p=PBko@%.A b194evk/f*G:bp9;lo>n5r|X/? 5]:ш)k1i>3$o *p=PB*vk_\ =%Q1<` čCƽ씿,TCI5Xx2'J힡~ 1L%c쥂7u" 'ֶFYi.&]=cᠯ[CH8?[0qF\ WF'ay=[`F5sM ;u)[ ~kLO1y'~H$ېpƚ&qmO\N~߹DboV`եCw+CTZj%㋠eF9߹NT-ίR646J\E6 :CªH?t{p'yX ꏄ)oA"K<6"F$@(ɣ 56&'鿀]/0A$^]Prl߬o+,tρ‡m0@yYAW\")mP7 JdA>bf#Mq78R5@%. ,TRk>-TV q?[م9&ټ;,ڑD"|Ɣf#Ѐ#ȟ"1E0|׷ޢ ~AEo#5rŢ@ySo ~&@%. ,T)5XQzbn=qFZ|R vMt^SqgK_T%9|) )bjЭc:v_*x-ϫтհ遦/z<č|)+,T_ v 3G,xL-9-]+/EJQF]`L= P-t ~5 ӣ?o5'J @%. eb!3N;wЯۃ7qƗv_#TzJ\*Rk>-TzO;t3>5uSN${6"z9Ũ*7 cTG1qjk4+.Hx8ٯSV@n-^@ŠLOOEkJqhe ,TP*p=PB%. >qv KT.T)ŸXf"xM@^~R9w0|#6 >sE*E*}S0 t3+Zx8?o, \TP끊\*sYbǕFT. 4wq7,})Ze7TzJ\*{S<1Pa:v Wg#%ψ#x|u_"h}pܶ{ߨV g>ldw-@kyX0 tk m]H*qY@E.bS#-t |5nܼy\p/"Rn *p=P*p=PB%. %`u7c s4ܬS(7^ e Ұ2s({=u^>+~Q'%'C0o@lMA{ ,Tz" \#r;Sd^/¿Ϸo}Q HYY$o *p=P*p=PB%. V`gǨ sTgQ׸~$_̷ vǸ,%\iW>| 6gn^q./>kg㳀I@ `: P% S7oԭ݋ J\*p=P@709$,O4>{W%Ƽ ȞB*_{C*qYeR-56ba}?7n"95M9J v/_\0^䜳XjҩPw9pw!r< 1gX5A re TzCܘz{nh|: }kg${ISA%. ,T沤?F!ҔR2P9&c\A޵]q6>vvAjh @;X3A{! ̭J\*p=P@*%|i<\5^sJeJ\ d<!ӆxs$5C3x"uz:]|rz%PM%cao"ص`p'զ tk \T2PA9XHX\I)ײZ| pw!\T \TPB%. Ʈl|7@> Fzޯfxu ןŨ"ܲ1 @0(`5,] +8إ uPB*r ^i))Yׯ4ؽ˸7ISD.,TPBOyCUpA0/ٸM=.3 w7PrB0m"V(7YJ\*p=P@Qډ*RÖ!=r0y\! i[,TPBeoG5=ͩ] 1Gy߹vY-Mt ro֢n+CE600bvGxQ9ФN^B%e TzB!~8t ۣ7> b,TPB%oG1g1AjPB*r@%. U~(ӵL6ڽS=IS+w_TPB%1FpptZ9 K|[c{t)+-.k>_Zk0P7l Y ·F>w)TP끊\*p=PBOI9 iS?[b'͂h7TzHVen-TPB.Xx &q h\;kwo{$[ƝN3GޯWCEF4]}?o,g ࡼPKن60\!mG'HOo y>Sc$cAl'emHiclG cb!@#s}gR;[EH@Kgl}*:s]l*7(~@?'eA\"J)PKk#tť|*mLv702{#ik eJ\TP? !aMPc K3!qlܻFu.o9jmS*|SW#; 4!vzJ;ƴ/,H)PJ~oA];MvJ42uE҄҂e \TP!a%5pAp|=50W{w.!cS[$Yr~B*qYe,Tp0`e -QyY CP^ϩ߅l `M0횃?[^x)k׃ v+H\-Ҏ =-U1ײ;@k/ b@%. ,Tz ^ &Uģ3o?'RomEm&~ `M0}WΥu˟֬N/ᔿP ]H|\>%SwA:H 輄 \TPB*qY͑~ogp~BiYQ±o&)o(G+{B˨HEoIgbo^C(kp]9?"`5jgߘA@; ^>͋?'EA\ *qY@E.@E.C'0%,Ka*^x{p6n =*p=PB%. e%QO"}g?Kc^±)3V]S3tNG'f,ĂsѸ}ߎ=Gk5L*Y \OoǷ TZg-- e7&Ҏ"==]1׮eOس=s!G=-ۖPJ\*qY@%.q>]LVCKp|LYDyc>90e$~ Zn1;C9!KŇXC3m Ĥ*f^Rd|L{-Ua@ @ M] e Tz 7/ǞOS ܾG"yޔG^@%. ,Tz3RN-$&?KO_geL3l|V7EXч3F-X h 7SZkh?Ι<`5j22B0`{d./<֫ qY@E.@E. "5lTooFJ$OyC^@%. ,Tz27 o`7:c>pW1,Bz uWCHWt?'FcJQB;s0옟so3ƽ;#\?c=?E€jo_iA25/SJ" \T2P \T2PS׶@ک`X<6ZrlI'dMRJ\*qYeNٲOf߽!%qu@q\(Nw+c !} t|A]^_4t؊n} @>I^[p> Y@*; vv}l| v➥YB u`Oo "%EA sk Tz TH=Id]nQg\F֎H sk,TPBe9)gߵ%q8sRGāfO U{E`RX1CЍLٛC 823%#8L]?l/HҌ}"<`v]KxgruUz| NC al rBѭ 2*p=P@*pYe7GH _n PYp& CƆH%2 \TPB%Fe>Z gzqeEݺ("ږDhguԷy(zEW&nLڦ7Z^Z? &5!HH\`.ьgQ Jǻy{.*cQB00tn{h sk f6f7x"Э \T2PJ\*qY൐+2.OSwڷ Pi,|K:!Sg^WIDATH*qYe kEw8Ҷ 6WעbZA?*bw1:x1΁IP[~Čcr <~j$e$`BJ{ybT ٤ @ܓn \p| e,TP[CdZ8,W8Dwc ezA,TR}<Wg* PܢWc_ۻf/~s͑7a+:9'- U PAByOUkԫQö_ }aڭ tk0ȟ޼ NZ@+lC6$g#yAҼo322EynݾMo {wpB(ƽDb,4)l#u{H$xa՟bm oC[Wdvs1]"~onQh Z࿨2<%9Ft-q0eُm ![{0po9m7I8Vʿ|^7 JMa [ǗkX~%[ \T2PJ\*qY̥D2/ ҧDQQ#VVg'^ߋl"8љ 2 Hj߬UbQ]_ *}ur0@ohLtS!\#F%j %잇M*Ə]{['{{!r(~Qq`w'kʟ 7e,T"A䷐0 *{s&vkn2Kc/`` \k{`Ԇ?Л=zmE(wtفL)Tů|+ -P :׼ " PHcYn]V,`roFVl^4f \T2PJ\*qYeI00io1)JAnpT\򈧐0İܮ(VGȾEnS"Mql&vAГ=ct};i?b& Wú ^sgŸ8eUeppuKh7^o=M6#*cuv-^R.aFePvl|n!" ]Nr^x[A TzJ\*qYؗm34:Jc~v^}8ӫ2TbZd~4/?*bڢ:Y^- Y/AsB vFhB7˕3Cϫ x{u Ιof WuGT721T([{W+|ېM@@uyA7&*RLTz" \TPB%. UC!wA>p·j++'.\TP %qE1N(c pJ%A\ 9|{Ü-1hݵ֠{6td=] t⨈_ TDHOވO,eҟwB3,^XK  \ "Jyeh^qp-z{:|d=$mRK)i D-;U=Ӭ ySPS"[ę, TzJ\*qYs1EAFr } p@ݿ[1/"J\$~ev?(N!9omZ*xc5+/b9}}ttGǘ75A ?@'TEuxMo{U[AUp0lES6F(  =G|q =௑|8n|/ʯCZTci1b6!˫Ոj]C )J\A*$)KSo8v3c_n TZ\.-?!la|MtToQ׎0`f'P|1e<a`pmh'^,\{Na#v2^!KyQ r3Chk6ڽ ^ *z5BL{Tz" \TPB%. IF= {J>E)ݿl$9@Mt^=^:}8eoWC?6 L]C7 @w9:mEh/g7(}SuhKm6` >T?O>_uFu$='zCio֖Ű'D:xǟA^v}\ _bͰ?}zݔUB A6an { )B @E.eJ\AHRqSB!isAE+Sw{a&{֫7Ⱦ} ֫gi mK}=%FAoBt وQoQj741h퉺a[P>],}8;AXxdՂ apWSR`|ig-1LĆKG0؊+m7SY*a \ 6,/#N8mUɞO ~ڐa!F 2x+#>A>8s Oy#efE$zɝ Հ!|^뿲?&GTZjU;EScܲ_0l1Kو}ؕ *|sWC9 |>E;jn+>/udY*?8Vqm+U v Y,ZozL.*#?]nzO`˕c4A AA4|3_,[o힯 τΡ70*`fd W`/"TN[ ,Tbĉe5i~N<{Gd2 gz~CEqg#Tdχ{ZR7GLB5Wvè5Oo9:oCh;ȄQj7 W4efF|"Gs-V] xK *jmRSGxɲJJ4 ی<1柉3Y8ԫv|(#X|n q 8n1hYR>ߟW|w9ȁ s [=-H_V?N[,TP[ªH; _;w$^~Ų{.qC!n!|)1M X;;LЭc b-LhSk/k 3}]sQk5kGalkX72>>L PD1^DȖEӫX32Mns:aئ}bߦ"{S7)?"Q=<]ww/@g#\F#S_GխQwJOo*}5NoEl&/<ӿ qYe,TPJ\* m 7C7nBI)9t=L1"4z?²mE'%ݢ6l?zyAMhVLQpaOS4tg{|# O=|}8=+H_VZB]ez؇|(fT{7,Fm&>^-WP@*q=P@*qY̨.xQ;w7y>Uy&gu󚰍sݻ"b߼ :=mWĊcƘ':Z֣eZF@KCMAo 1,4pElv{˗}[Qc jm]^[ L-IÓg?>L$ů|w9de mv*,\*r@*r@%. 2RsLI䇲?q=-H9? @ZM SkVR˟:3~>W%"c6;DTdo Qj7)@[FhO4pA-q[~̤殹;<rkuA ckE3w^9 ox((~5Dᛂ6ÿIaAⲄ0h"̭\*p=r*r9m,*|V@ھ-HM@Rr*p96N?sN:CN^a X5{̙ 6N{2oG &LlD! T>,÷&~ei">^Dk| E8༓8FN~B|"ztpp; ,BM«cUua@ۨquظ r9- EqyHIi6DmDPwCK vP \8./ ƅ?K8wȤ_Ikx{!^!<J+^so}:VxN/&hDŽomÀV]"\cs- Į*r@*r@%n3__>x8ܾ0 D5nUF5@# 3{b{Hֲʈ@L FpOTzr*|s; i,/+8]xf=6Vu7| &j@i›wb?޽C6 dP ڃVA̭?8б0.3Uo*r@*r  XDžߊlbg\Xk^@%;}~0)` 0_ B(.{KxYMAT #Pu oP6y{\RyN=s+ yCl2S7ľ|Ē6F Xؘ< tkkRGn *r@*r@K+CKȞsw(- [ 805q7$!! aXB%ɜIlD¾a@k yԿ>h=>ݳ o#:qnu Dm+0 +f&~=³XT7 `bte 7hĤ_IowSy&:C5$. %,d{1pM;?oyW A@*a`?قԵBoLT8G{  Tz T2(?70>??ڱ&V%q`~_m೗ ;$ L.aXI;sZ07a"WCHK XL_TT2AD.$\NNz 7.i'{W(Tوn+ b>\*p=P끊\*r-.޳-ǙD"8 Z@m+"[?p&k*s- ɞMaꍾah\Fdc ) a <4d3oƻ }[Dt[cdn-TZyb0XIxNRU|"|SH0P#pfF%8ر0.i(" \Tz"]wkϑ%p_1(v.mx~APiےqx8W^KX0`@pBkw§=1-xڻwSƉH)fLP[Miʄ0qM'H9~iy0JֆZ{!ʵTj1IZX=\*p=PB%.Yd8kQz !EAW87TPaJ ,R=J/K?aX!a;>TSr0 W8ȥoޯ Y7vΩ3NLxZ^P[M@ìEPm2^K8$+A@= TaA栢7ED8|  TzJ\\g\TRYrw֫g@[֫gי^ *qYEpca}.}  E/&lw4eo*|sh 0@o|Ղ6cߥxk&JPsC*qYQ~1g@=M֣1>6`үp9@75a@#=P+d ػB~ 'bH v-PbpJB^%ujFF8&yR9J T1pf+AoVzG2T?WmH_ʠ8[1(u- !eD6 |*{ ,Tzn=ƪ_c9 -V) YOH;XS$F* 4pCMka;N_o !y3L%&FPK.)렂:q\ٽa@:ދ[YAzωbݓwi`q[ '{΅!ŷ({ ,Tz"JHbXG3m6E4bBkw7 P?U)w lƤ{N/_m9 j"~ص@%. 8pnR)LZR:HoOXo0  ~V} h\H^sb+Dk+ո2gެW߭^9ʖeo4Oen-TPJ b[w0nV+/˟V78hmCHWCM5 PBy4EЈ\wkb_sfg-C0wA ĎAe7`U8忸*n)Q' :x }Sh Auhv ~[ȟs @*zgWw;g@B1}}8]XJ\*p=PS"Oe1urY]]'4eUnEa@ ֆϩנEJOW3IRi`[PWƿ(] TPu4p6&N!x] *|Sh"4ܻ'5su.|y>6/ (}OEpK!o-{>Ps˞B%. ,Tz7y[[F,4gߡ!Q7|;FT0@o [ hFD({3{eKO}'X9;\6dS4yϿ.>:\xN>ڻ*W0P\lT*Ozzdn-TZᢿ nLe goWLo*qYeÿ/6%lxe Y?g1Wo G* 7Ĩ=T ބ/{ *Z3?q/ bׂ rIհNO, Tv/oɣ3 $_&h ߲^[sS!EAdB*uSuYL|=/3 7eJ\*p=,?Ywy4kP',[ů12 wAv~w5Rħr;/ _17 Po~YU,T|h˝/;Ç)e_([9C@%. ,TPs=?´0rf;_&>k^AB0 Bo5 Gcw=:m2?vQ}l5'1"J\*ukxM|͖T'|u@~;bJeu|mGH @%. ,TznU ٣j^~s ]]A#ŨdV3lj2e@o !L*|sWC~TFX]*A*|v랳TQ'k.PsC̭o㣸%$N$zǀى1vp wBU u {sRR8.wxϬ΢q;"P{fgg_sGG\)w/[7.@+K=_^Y^{x8;|G8Rq)ě3?u '0.j F`o6bM}̉ HWt壘MNnݵ!,OƙKqV'G\#.1G'ݤO0ɻVsC;Ɵڈ׾y8#.␇M½.(j,Ϲ wpz\:'~?1oCo^oĄS ډ`'JՕCLzX?*ڒ8˹\9Fee1jB1FNa{cq6m7)ǜUz o{Kp[cd{~(֤OҼ`KqZLu?'ߏ7x@K12nr-S_߆ '0ʉC{tu6fN晣Ŏ$O=F=_ {WjsZga~kwv@ٜa868xc]-OCټq(ʾ ųq\|½}ط~v P87i.ۊ'7bjvϮm9Y<헖LÛK|/?:G(_ğE鬀ޜ#:zo{Kp%v'*_ESbټ^{ߒ; ߏ7fmw ku~/LG€ez_#=~s{poUгO?\3':Lſn0xO'PӞ868-zװd?;^uspہ՘vPr DvV hs7dV'1‰y^E|xug!7fbsoۯX3'd_0ppQ7j'ͼgOL;Ľ-!xί`'zg߀9?=+pݩ:LyѱG?x;3̟FkLT/fnb_)I_rnűevΕ#.h)(w-GuşyϚ@$O0cT>=p|<\o'}% 1AڕOT77ෆJhxF@31p񧽱 oaG*+ _|~TKz;r1v{mop-_vO*z^gǭ{W8GNs0l7,:gC`g?on^o{GB5`EyX_za_7D/ q):t$sةwD:p33o{0#u7y%]|^ߊN5 f;l7~o 5<+p[c6bpzr4s]sS?ޞA2aNg݆Kìqf|Og< k{/H'-Ec O~D3Sw|~9n]rֈ@~v |6\fSǟj#wTbcG>:G#,ċ# 1cߖԷL1d=ZWy}~s#UѸr OCKqĥ8`z+ܨc~?cF=pq)G=syRsOC )p.|9򘏿y>}cqt0X)ǫ1щ89ڿƉy3~[k @+c~?kt_zY}gUß8n5x"~}2Uިn#.7qc :gC zc`x{ݞNiN\r_z ~\ȹ og}fpq)7Vkso 3cʌl3 .AҪqWrpp-&:Gcϛ߮8Qg\1sHrƧO,=DZj4vv_A(nn#.q̜O;Ü j 4e?¡Y OǞqmpmpĥ8RX N%0'xG\W2w4݃+u30}O&S=7j}?Qt p[2oZ4D*GgP6G߽ ϝ?=c¦d=(+K?y86868Rq)l,eCNWW*wpd#8:'m9}?|P_6=;GZIG;Goex':c C10GCgp~E|>?k*X ^XVM1Hg/=ppq)6SN0y?c`J-w?f36>yT<;pNk1~8x!1 kj0ࠉ~;Wx~TJݚNݎqNy]NGnn#.q\9,h׿&{b'0} 欸5]7m1Ɯv_=}EA ~v! \1`\z٫ODi&O岙tt7rO%86868Rq)k9T`ȩhk ̮zK9{JxP?G*>ݚXv֯KᗹM?DKpmpmpĥ8Rx س׺@pc?dVܛ{HӸeG>^' >cc pǐ#w Aʮ"$'A[2qk͓xn,O+7Lz/\ƧAqP\{:j 8y තYp#Oz"طJC cq[#czf;͕E|ޟ/MqG0w([5 &8[\#.1G:yVhVЇ5O9_W'ukW#Dω?1%[0*&ha>[x?'C.KqH8yp91o7~ǿ s&i-x}>sSmyR<|%ڕT-'pȥ8Rpq)G4#hϜt-yƀ`y/QΎǪ7G߽σ?~ﭹv'"cؼb4mqOKqmpĥ8Rx tݵi=xvcD\89ԉ')Ը}`rW WO0N#.Kqĥ8CFTŅݫ G?/Y?oYC @x|.g?P9R:ʼn~R\'-٘T|ׯK=!Kqĥ868Rq)g'k1d968xiA0} !1`}r=H}~+=gn+@͙G۝uw9pĥ8Rpq)G3n68'~|1"PxQq: qƷ}{'>﯊OݷcȦtL{K-Gߌ#.Kqmpĥ8RD N.FcU>@6b @@DLk1hX^W#ټ>{Sϭyi=W<5ӱp~-'_u& e|OYV0> KkZ 8Yl xߊp@cA0of4y^-Bej1kI/'#?gce4(HßG#.P&*q}C ?kQrV !1`4?QDi׹5iN/s?lB9藮8d\|(q)G\n#.H&2qsDhgH?O['c ܧMwu?Љ~}k"3RDtxvŻzG\#.Kq 8s_)D?oY@@ƀOqp^ėpR.ƀ͙0} s7Kqĥ8Rpq)bСBؕ}z\'1T~(Ȇ@D@C@s8ߡrܽEů.-os7,GPR4M}oKqmpĥ8RƋm*l-j1~O9ou:c\ėԨO$IۖOݜaN0+Wٝ=Kqĥ868Rq)D@뱷׸c7~4b謀1X-3WD9ɲYغl$ |k.G\#.Kq/6:b?'N3!0i s?h RCם+=_sߺ8OZ[r1n~ E_> G\cx1ú*B w1!r sG{_)w,|Ub5^@z-8H䉾?|pq)b [ǫ= 1p*:C *c m !O= iF?Jnũx'z96868Rq)L@jq?\/?OCd4'P9z^.N|~"JZ_Tz+N/WQGOG\nC.Kq/v:bTW9طͳg5hF <^ԃbwokOD^˥3p8?y%N X/ZX>4 g>'fӀ|f@>W:bTʞ>7G?6ƀ7~0:^g:~bW^r` ;ssA5Kqĥ8|I[_4sf4-JC@0cEEHj\w}v*gމW ⿲]}\nn#./A梵އѷE%1o7,Ws]F;N9ߪODɵwaKH$~M2'=AG\nC.KqtĠuG@cg\"~wO :O>}Hŷ.[``C:)5ǹ))_.>gq) G\#.űS^:bPWhR@4 3Ac~Kr߿!7<q:++}^D?q) G\#.šS*twbzgȇ@cTce!ew{7Ծky^ U0MsiNWykKqTh:bPݫ3ii ~(m0ǀu>֡MO6W+}>R7eaF_|#^]2?g|- ƿmppq)NN@ kz@ډZw4`˼\lϽ_M٘^kyo!G\#.qSmXWYCAߚPckar9ks<Jgj58/~}^[8Rq) G\#.aSMmz(;0)0ڀJyCʖ8Fgc٪sP[NG\#.!Kqĥ8h*2:bTuNpy3"|_nE|Nabnѿ( _?շnh F_  G\c" FuZmmǀY'jzҽ%~7+[Ubې[*Jflxy?d|Xh~` G>'4 es1us5M͛u{żrE~Kqĥ8Rpq)KC@1=5 DJ<=v_Y1V˖nԪgp}(Z9r{-NKqĥ868Rq)G\#.R4.so}o;5=w779eZtsotޢѿtۼ53`~h_t{qO`pĥ>32qTt$.[W ?Q6daR]v?ײ{ }3A@>4 g?č@> |CR*.uߴC'Lpnѕ#.Kqĥ8Rpq)JE97폩y [0;k#Kqmpĥ8R)=:]7}{һаd<pqĥ8Rpq)G\n#.@Tѐ!u 1 dߌ9<1G\#.Kqĥ868Rq)>JŠj{?KWWy".Kqmpĥ8Rq) G\ä. JŐMHݘ5/Ṓ8?/pq)\n#.Kqĥ8JT 01G~ YFg}Kqĥ8Rpq)G\#.ARڑ φ\_-/:uBm¯G\#.Kqԅס&H)uA%m*@ŘQ^}868Rq) G\Cڇ.0=n#.Kqmpĥ8Rpq)GHJ]]iY3'pmp%86868Rq)j_(R*:1fn/2 :?Kqĥ8Rpr   G\ڟ a1Ve˧W . y_> G\#.QARސ*Bq?/k!Kqĥ8:*vP*p}Xl+3z?pq)G\nC.KqpTlN:_|2=3ï\nn#.بأ@)`銩x#;po~d868ppq)FŦ4TX6cRs_y=No}-{#Kqĥ868ppq)GF.J險Qt3ү;n`|L>Zd}OYF0>WqERm^3sVAU | >'fӀ|f@>WqGR! ]܅όGq q)Oȅ8R[Kpmpmpĥ8Rt(Ee⾵Qd,~Hqmpĥ8Rq) G\#.QQCRguۘEI8'pq)G\nC.KqPT|.z]6cjYy#/ǻ!Kqĥ8Rpr   G\cuQY2C_;s/s!Kqĥ8Rpr   G\CuQ[KAŒ1΅_6\nn#.∨@]<6[y1-oev;/qĥ868ppq)DŷAQD\c^ċ9}ϋ?<q) G\n#.x@%4s_Zm&^ w _6G\#.Kq8TbV\L) nq_#n#.Kqmpĥ8R 8tcNYJC}i~'O5Kqĥ8Rpq)C%* D.kKqĥ868Rq)J<:TB0GC㡒{=o6kkKqĥ868Rq)JL:TO+9}M?Ǟq%868Rq) G\#.Kq$T9T~;;G=gr  G\n#.Kqmpĥ8Rtԣ.*s۞Kpmpĥ8Rpq)G\n#.8סsTGjM&!4\?<pq)G\n#.0CT'fӀ|f@>W=*AJ_P8pq)G\n#.Kqĥ8@Ŭuyx6dQO[!Kqĥ8Rpq)G\#.P/*&դp~;C.Kqĥ868Rq) G\.n:T[v_v5r  G\#.Kqĥ_)*|gc8o5%lk?/88@, ΧlQ0>WGuR,6ϯ2w;s7p%868Rq)\nn#.}P1aEdjx=|(r  G\#.!Kqĥ_tvս&Ņ? k]q)\nn#.{nzdaq|3G\nC.KR~tvӉYXv8Rq) G\#.J@]pk2Q?,G\nC.KR.^N+ F.s |k8pq)G\nC.KRm..t_{[8pq)G\nC.KRйyV*.FX[p s!Kqĥ8Rpr   G\ԕ U&*`{ڟG\#.Kpmpmpĥ8RT$t1R1K&s8Rq) G\#.JEJ$'_Fђ=qo \n#.Kqmp%86868Rq)~ WJB ʉyǽ-r  G\#.!KqĥA\))*PI5quzO8Rq) G\#.JT/`e$~  y8Rqm|d,0qόE[)[:T Ll㾫7 |78 78 ni@s@f?։k5-pĥ8Rpq)G\#.JEb^7E,)λp%868Rq) G\#.KRA/_Ͽp%868Rq) G\#.KRAU-sE3ӅĽ-r  G\n#.Kqmpĥ8R@T4P"3{p:#p%868Rq) G\#.KRѢ@EGu6,yyG\#.Kqĥ868Rq)~V*ttw>ƜC.Kqmpĥ8Rq) G\;GI{IENDB`alligator-23.08.5/android/res/000077500000000000000000000000001457614656200161005ustar00rootroot00000000000000alligator-23.08.5/android/res/drawable-v24/000077500000000000000000000000001457614656200202725ustar00rootroot00000000000000alligator-23.08.5/android/res/drawable-v24/ic_launcher_background.xml000066400000000000000000000014521457614656200254710ustar00rootroot00000000000000 alligator-23.08.5/android/res/drawable-v24/ic_launcher_foreground.xml000066400000000000000000000125151457614656200255260ustar00rootroot00000000000000 alligator-23.08.5/android/res/drawable/000077500000000000000000000000001457614656200176615ustar00rootroot00000000000000alligator-23.08.5/android/res/drawable/alligator.png000066400000000000000000000430621457614656200223520ustar00rootroot00000000000000PNG  IHDR\rfsBIT|d pHYsNNsjhtEXtSoftwarewww.inkscape.org< IDATxwřaFi *$!! %1g>ٯ_|wl18%$!!6M\==ӓnH3b+tO?O=TS`0 `0 `0 `0 `0 `0 `0 `0 `0 `0 +d+P+O/ȯ9G p< Lvg!a@" SőgaLvjO^{ .bW5?P C+Yյoؓ]Jix:ŎQWĠx+ 5~4PbJD>O'&JhXq:|s)'|PݠQy2;'>h8`{H;{97\Eb(xƸ#ɮSkς'. D'u%9(}fɮEC(wwdׅp $;tuQO&&:?ۺBh<)dׅJT&O˗~uɬǤ*cjg&?D4-r&q/2Yu&l={ ?\B4'>rdaR,n<07Ob0C5}_ `]ʬ[gZ>Wy F3=֏֫t??% Âwգ<ђjR:1m.Ä +j~S|*8GIt`4 Ԡ4|8𣏕N`x1g0p/̏}zz~Z ͠=_Jr G-| ?Qe8;(nt2lnp2On`3 Z^LpS;Do 0MD^xS;6)ʼnnIw b}1S1 ;f8FσMW9c}s8i7fl# s[ca\4z‡ѮNz($c=%:# gBk=gȻy<*B@(>R2rCsFd`lEMtt(!,gT@R!i Ń,LA7 {|upGOCX7vc7T*]dPۤuss3_A#NJA AN*s9[[fbkL`hђX7v ֜ތc|gs2`y%4oP 7"0sxiXZǻǃF$f mUGFP9|gz ω|Q~6h2 9#)8Ý@S6@@`! p&,1yg#:)xs$&ю)hPS-?\ \۔zZg 2(Jchܰ FG#!p[fZ+rZ;9/Z+}+sf7@)F:Bq"_6N :8lm7p>5.(~ ?c /Qu0KQdW!9qo) 2ڑuSb83 hoaz\=)_,_@7A=QӪ03XwdKk?xX2"8@zI0+K( p &Xwl):0]`A|p\yrAߒ[_~ظeیA PEF˙v)6N4}|Hw%h: 0(Gp왫s 87 ┻=|"%7Uyzo _y Cxe 0%pv@8m9 .?=3L7DrCO gP59zaJAGC5=>.J)@V6 <B`Fm$$?+  L%3%pu`shvi8<$)5)0Pg/߼1u1 _{5ł9Xln].kszT oCwCڇ_#}ГmGκglatpx641@vru.@E%1{PV]76:PG'p]fj?>J 9=0f-nD"0}Ϡ?vs2ufK묚 ?W> c!B%wL>Q^JuS S .5()$LiK1햟O"614cJ`$x/zkJ miE@j, 7k"L[{c/|cVHJ:[Egqgm~34x >7o׉Wa)jʿR\Sc-?E Oڒ%7`}udsߒ[`v$c\8:Vg%z~]Gf@liSS:?qd)}"hqw|cu߀nAeIm|Z* L 48L8Đ~ogM^Jɵ*H=pn]h}f羮uAhpp-ASy*?*h*8ObLt~?|/s$uL 46(v4?/?],m8 MamS!E- VG) 8! #kGEn3x<} qx<ǁy<ǹ_t-詬%@%lpM8#O |SpU^޳G5RRJyJTU$ˈ'DcGHJUuZι=~n;u .£gO0+rZ[0\(4 H"!"H@^S]Ky0sf 3%H0[Zj 6anGMz]s Jh,pB8 !VLQf/VbJq`&pYSk(%%@E. e}SAp@+4T͘8Q <.v{??M70d ;=շ0DK`TI.'CY{%Į;`p À(P%\駗R [u0VL2\.B寑g%(.('^Q0%0I00yv6~8B~#0=`h8xj[ah'֣'u`Asn37`8߀#K_>8 ]w=?=/@F <$n ` `y64 Z OMA?AǑm {3F"Ϧ ]x'쪧r  =^_JSktҾ!{Vew{n0 $% ,q* fw@p6h8 ᰷t"ϊ'cebS6QŸ!w0| j%4=GH$T||n$5sP7L%Pr F@Ħ54!>߲ԧ"Qr^>[GȚhyog/V3/Ɣ~_ġQ`sr, bs (hiՙ\?!k@N?ueD1H=s=[pns1%,|DӡUkp`=Yw矻.?\ŅߞV;_݌ؽkcO4T,# l֠-27TuLAx, ]*[gUb\}2 ygRiD~"]zap{4 xx"kg%:kgN1f L8L$/GՔvgo)Y<' Bߞ7߲BH4Yt \@Rk+x' ât!/qeYxicg 5ۡQDx?Z 2b$# h{w;1%000FD?۽>4>?{bCYo">nD7O4Xrjw h}uJW0&jJ%. {1>ג3J*Rd[BlV6@;gyR$% ¿ǎ"kaS~"tHP#[Υs.8W^N1yer_,*Z~R/vݏ.}3!C7 .4|KoI_/L'gJIM7wXph[V1:[?@G7+ @,hpN19ap:SU?fw֜T!MK?@4C7W5g_Aދa< p|FDN~}[g5(И u=kCD?M[S?܈\6 CދE% 2@tZ`Jsn:W>]b0V>>pˆD'; ^Y2%P=)zOtsZ ږ;?pѝyK(9Թ2 嗝r=_ׂbs=|+.]*i ɉ W ."=b"@887,,cĵWB|o/A=P>HY>|9:, H:8O;ǐ(B @`c%>/1Ĺ24K'+ C0tZ*Vxw*y;0$D$9A]3dHS 8@8RN~ ҕx @= F_"z3%PNȜG[x6_L=z/`SrZK˹ j,'V@tfg[ U'xҦdgJ$MF]~M+',r͠@6p&*x 㜛F}1\s^R ۀ'܅wwA r~ȅ9X VP_ mWAH&ڎpXoSz/(t5I[l18}M{j;yv !r9z=!xWS2N1V% ' 3߀;DDRx\w=~ ~ԹBl w_Z<6, T-W%ٳ]y3~m|&`hvQ3<[ M*Wn } 7%Y 7a?7|Dg[JKr">ݿmk~ƚZhJ)ԳxMعU !`ft\~5nj, Bpq!O)F q6_XSӛ92eme-< ]</"=-}?#UzX-L%@iN o|2w7$GO›1yb NAU5 aWox{3KK: aoi(yGwgFk%1sR mzEkp6A)dS@Cy'<-}#BBKtz oyDZg׍E~}5@YI97\xcueSj+/Pйc 9ׁq[V(n WrLyhyMkQ̪4QiYaP:ixAļ UO$O} Ha˅R܋>пKS˦ 8gW >Q4e RZgQUBIKJRED{֥_J;AeK@*M<-i{f)ϟ<=XU0o #'_\pYYm.PlP-= daKuJi {/gS,#)Iy3v󬁚4Qi'sE 4k낂Ky?kUMC}R.<{2tW`}{_4m&蹪 O^g\ ohܻ\p,+oݘp.t:MTZ<@*? n<}QMKkt"7|KFkyjA'?xV-/ ٝSO{Ve+ #E˵bLV˟Kr23aIu$ph#p/6u*QҳpHOյhɼ;k{_ŲK^׾1~^ȉ%g H+' l+6QZ(x?.||)^smP~U) >"R t=hȘ!Mʻ%_)JowG=bhd@3zpոץcHI)~ @VOdΊXnaZTGgB'$<A(q\4OeT*@CОBֹDxV܉ Lie=@oO9"ia@bvL^:rq !ނ]W_J̧73d ,DZ3 "x/ kDlVYk(ΞB3/ oDҰ@2V}vx2Rd;uޔL?ŧFnsIK֢!YVUw YehiN,?5gj5#B뢓yܑjW€ǿۜO9+X/˶ XF^J1T}$ɪ+ole旨oϩt2 b4)oU#W-{|2 9|F /}X#3Dԇv<B[h-L24S74poO|+iN6 $.js/C= eC5_O)ɀ,ǂ=86_s.Άn| dRjqtq/{ OS^촒N0H75@'Q&~Y,C|3cbGvb~jPE$STık8 h|2 EyܺPJa+iHY{ ʇ/ypsc꧎جU7̟w]J0E|2)!(=`.Z F9 L)쪢CMP4]}xط $g0s9y{qUXwrSCY /Θ*=kpF\9`P/} 9-~"++]^u'7 Q)xl~D~>0g5 m@/ O;SNs[  ,T4+/u+"?xӪ-NKJDQ(;V0m70JN<'J]1L3>i_tМz9āKsޥ89 >*,7:H`oS8 /'2D^pذը/ۄ?z_ZrŸGw 4$JAs bZr'aSr\FfԠ@n4C8nZc} ӿWNU&"Cr? wLqhy-NS!Vxd^' |-hV᷐~V"( .:` KPϡ HדfkH4ŀxq8H_\s#߫c7f 4mP8"Q,CU5,%А (?8bQ9k;z ؁Y6x|*aDp(>l:FN@˵ ]l[/[,>46$PN@bJfJF^R 3`ǼKptE`$B[{2 b`XŠi,dY j[2!*I^dw/r fP\EvױF᷐ax]#iP5 b!Fq$ a>au y8=;].fPL,=گRq Ha5vF?P);=xW{u (zS/D+JDHv+ 53}XJJgaADG O )<3uڏ;{gyQQ}9g v/ l]95Fu I1 IQ QU +QRZD6ZȲ/BŔ,*.i- bʦ-~Eizʏo`bah$cÈ2cv1>//Ǯ0ܳ4gb-x)3`ZaXN`0ƈ1?[$:hBG;# x>0nmzSHKV`J1?pba?kMqzѝ@y6 V9KKތ]Aܹ'ņ 8Re]àADMLxߕJ%, a 4c㸜 yMr'}XXW@+Wf~àejNI9 6vAFЖucH_ANsSm{+^Yt֯ϱ 4 MƐLjEX)m"X;\oS%0 _z~6^w"h)9S *N% )aZ=JkdF0jalmS@gܺ&oΦ 3HQ$ԊPqp`=y@C(ږ)Mv5 N Q,/*l0dS5WW%̐[1܇0tZLynAa_Wn6AyIrRJSb#HNpѮJG]Lp6>=G1ܾMAP<@V*(VUZjBI:tـZb¿';!t 2muE6zLŬ@LIbH`Hl)Bwz3-'wϹI"q)Xq/eYLB˄Tj \f8=.>ŞB2uNϪ)?eiYXR1Qe61_8 QcM6 Lp69N$~ _:9 )XsYws&uP_ OFO ܬByz ҂ L)m_W!u(G:X*\*~jjZJu٨dܸ!`;g,ds*GnƼ~VJ1&1"E1&'D\O:,>s[][&~B<+EA;ɜ $beʄ4% _Ş܋qpjmO{(Ղ.˱ R eǘØȚhx p{0X# ?PߑZѸ?`.>X="Z"ٓ| @5 MZuBA?3CpbJ/Ϻ_X(!y9jkBNTKa|ѧoc7iNK,g)o>;X}蹊e+ |Z"~pmSҌ>o=NT\eu X4*oiŮ:o=XY#9}A.ri9VȚēL8PÛ_›Fv["u ?P-0oVĹꦂ6 ^ X|H?sKl.>Y 6@_kQaaKY@\KƠ7F_-]j7 JaMljA@MVĉ~ ˇ(0/ c!*'RCO)DPpex0 # L܆sEY܈\npYK sk#iċ}܋Zb"9-z^G&rZSgSU$8j@P.z׌7ݹ$ã͌ەȢp\l m w{f_we*Nhs X{V""bP&axq*.5c=ŇhkuMï81@UpmU߶v@lCגsE4Ԣ4L+L.#*} գBD ^RÅoDirUpQ)^<g$E*ق瞷)r]IKЌq 7pQ ݍgO#nnw(;5_جAU侼|!n }˰eE82}hoœ(]5Br{Ȥ/g}M9  ZRb h-Gn\ރakW AEp7DzI? [((~Nlq_kv9SX@C3W~g 0HH $pHӏ=X95g "`@.wO7ư&tbL23od U H0t$eze7Z"ї{-l~1CKI-BJZyںyM I$$UnJ K`Cd.%Yn찖`  xe7LIaβ5:Iv ^P(OE5>$!+<#ne W^1W]wF3 /؂ۮnKw2iYaf;!őКpa\32ۍES7;w9`6:o"T8+0].U$!%&qУ^\32V^9˄NpۃO "Ա J4"( INBsH ^~t7V&4+sWĉY)L■4PA n˯Z!(Hd99!O BAhlT۶'٢gZyP *ŽCJ)TY,' Iͷ"-c`0 8𢫀`#o2*(Eu,IPTM9HS>}[0o|QW^Tנ(2Y*hxС]~t'Ə(LLkđ Lx`vmn85 ,A$hjsĺ/PqYUly1kF^m4à 8]kHg,q߂ cCPd zO їpU ?Ԁ#/3]Mkq+CӠkxA ! J[@KT\i7m #;Юܔ \ @jMl0m~1}U`BW4hMJhXtW_ᗰ.rab?(*;# @JZ3@WT$FFmi쾿A* 4IȠM.(ǎaȋnd'V,& )Ȉ:# $F>n8 ԴcvZn~y}rvӉw1D"t|Q yvb|]/n0(4B^bQnzS(lO$Ba(M8pfpS*pyx/nz"ŷ+g$4QG*iqV~9iFL_ q'vD 內[8vF=؄c b1w$䇝x)X>z ;:Q#i}i\=r:k$1 :# `lb#9D bݧYǫ瞫);I,J`pȾ(eS;=N`OljbIIxpyX?t('ʹi;nό20nfgc/^z[&=~M6!xܩ2SA=mBqj+'NaoSELSx'p dɃ  'xةr}.~Ogh)F%M73p26KS&Kר.w]jƯÄtL4 f ?@񥥿ý'/+G!x!êvTs6qǙg?G@KelFRsoL1xzhg]fK/n]}zGwʇǩ3NK1&YpghFEUSD p5tv/*xvӷl:.Uo8yX*˜/8qB)>vatZ&ΦkD(H8h3<~w`cGn[wz RS]XlBZNZB)>qO̖ҕ;τ?>D~=P}6ˀ Qt^iGwջz5C('O wy&xt3o%y/ױjYL{,Og5-TB>x{zU!r/@4Qb;"nY_p$43<nej}\^7ގ?Ą9MaWd !zJ } r;q깾プ~tKpNBUIt Q"3[w|y8 tjqu%P/b 4utհC^][<1ᕫ{{eAC42:nUbƹH|ߠG`hXGC򞆭'N=F3;_ F_^V,>iz;nRGPOX(i\kCk֏"Ӯ%a3i3l x Y{6RCkH{C.H:}*| alligator-23.08.5/android/res/mipmap-anydpi-v26/000077500000000000000000000000001457614656200212605ustar00rootroot00000000000000alligator-23.08.5/android/res/mipmap-anydpi-v26/ic_launcher.xml000066400000000000000000000004161457614656200242570ustar00rootroot00000000000000 alligator-23.08.5/android/res/mipmap-hdpi/000077500000000000000000000000001457614656200203055ustar00rootroot00000000000000alligator-23.08.5/android/res/mipmap-hdpi/ic_launcher.png000066400000000000000000000116701457614656200232740ustar00rootroot00000000000000PNG  IHDRHHUGIDATx^ xLc_"I&3jUt^~VRD}CDb'B3U Z$}{N2L<Ǚ}y?sϙ硣*ʫ R/S<*i^"(TJ_*E2/.[taj#i? 2 b9ɽiYtrFP{[FPxX|`R;^$M;\`k;{+1 ;+Z8DL#pk`J4y%(媕 { ' thħ=!> I$7r  lCmh^B$AfI,2B|bٵIi|d~#dѸA9ɩ #ADAX7+$xA=.mƊk lD%G_܃FBrѯCSXEZqr*$5NJ*VkɅcT~QcPX]EܲTtfFr }er!_~ tKMJ4bmR\Djj4('Hn [DAn$uVKbކ$ٷ)۰&M䧧,i rvNnm݉#ȵֈ(PN X';X-@r޷1$-.'Ç?Q~Ͼ#9Ei$ubkl0り< IBKΤ]7QoᎴ^FdC(ҕjo00D4_9 dHyOkȩ \AyȰ#^XPN WA: k'!*p >U| +ߥXܺ n#h4=}BYoQ#PN N (]H+ޘ΄8޻#ŭˑe=(LCiQ2T'&&a1 Z9--FR%ȴ ;3] ~"N"%5 g}(U0)1^c|11,t_wHN{ a  hTȋPzl=HB9)AFXu`}7~ƍ0AI1xǧōnNr fw+ar{LU Ddy~4)خ{&‘l =D ;vPZCKÔ0!b%DCSFw)ǰa dyGZk:$=ɴRu{Óc]Qg&9I5L('c@AD@7Cv_ϵB9) ADiOp`),nXmxmىO7A!>鉾g1֟ *]5 A=nyQQv* rN'Q@S%6('= ǜ +ʨ6 t5E݄v`LI:; ׵Ӕ#"BQ'OTPUA~9j&GT%AP!M5FNƋ.^J;=o4*nTt*>8yON 1M>Ws$h;&0kGbx2,xӴ*[eY1Tt`eg9 A'o]B(m5('^ H,Ϊ&sRGB/%{-u0E "bűN\;GPحv9r5%5 3d T [wg%$,W+ $0؎-j{fYqȶu셒ߊxIOt J NQ(PdS,P")R:Q.唓bC;$/oDAb bi\.ՐRI9ć{1;;AZW z~L %vFSN!G[R.:EoF_4 DA$_\o-DQKo|Q&=͞(P:Q4 &ߌMp]YL}" "rr(O9?G4P!sŘ94 , &b^W3N`1AOǜٴ [- XAڒ ]b.Q+GhO>qu S"Qo8Ae+89Ӛ Ԗ}"ۜ'G ׂ'w鍲[y J pwL\9CGpڂY$b6ICLK]wb3Qno%RIKtIPTB{SjnNA'~x~ 4(&qrAUr*Q h;{pu$\H,! B&~~< `!Ȗ&:b "\Kho٩mػ;bIP&j}5n-k+!eZ\ 5~9A&d$E&t2m#R[hH"5yQC8AJ]ܦizQu;QKsŸHCNԔtV2iխN-9.ldqd$MA”f[[Iρ17&xl-mFۋtz7~5<6A)=͔Ҷ$- NO-N%:L ît6iG~ɉH{ f4E&Hu<0I"r;zj1֯)9`?[3iN0ڳ /džr&Ȧ? I5 sRhzՁ*ۅw>\V TcR{A8 vZ/FʅZWb=?zDzFH1tlCpw!UR8*hT ^u4 tADu]ut#tJGO"lrrz[D5h,_ .4dkՇq4u>>ћ-,ZڪK5ǜ9؉!j)BO^ֺќ Q( %ATׅ45Q⃉Y= ˽`[Yp#]~SUlAN>Elrӈ[.xk5np}1'Rs4LNh :*V?q+v`MD0QlDUI0z['x-.jb|o-_cp̲ \J@0AyҿQP7J/ b/kWըpO{]682k.hQf#PX(ʭy*jæ}'yiKXw~GkчzKϩ@!;k\Wwcs$[h%$F " &P 3ADų&A u^GH_A7nG/:=h=t--]\2@>ZsbUN C h/CaJR9i|^=} L#Nڝ;B@O@9\@a(xVTɋ"ȟ&AIՍd=Fm ⪥ MZqb9&hV]0ebuc`Lb>ض.y'oQdS,PbS0k2œGɰhrbRŮ}vIv k!0~%11}s--jgm;TnöQ7% B#P,P &G@.`%/$ʼn["媕 }eBX$(d|y1u&1-8  f$||rR/={%;GC&7]V ^X=-n𯛅""5qdV'ը+_>>APf{\?knrbӦz+Mt$TorX, NVmeذ:Cz.2DF"Q;#j%$:{өϢ\l *ʫ+ӆIENDB`alligator-23.08.5/android/res/mipmap-mdpi/000077500000000000000000000000001457614656200203125ustar00rootroot00000000000000alligator-23.08.5/android/res/mipmap-mdpi/ic_launcher.png000066400000000000000000000063301457614656200232760ustar00rootroot00000000000000PNG  IHDR00W IDATx^yXT)eߔe\LR̴f^M\yeFedLP@ŅLjyU}e`z3C}i^i"n_|c ]e벵${#e]"N5=M4YlmlTقQaBўy@R+JY'ym+U?TǦ l26 WZٵڡ+>CekC6q|4~ ,j]|#g  XSgkX|`biWvaԆi[XպpK0:Hjw|P$9 >/$?S,IJk2(օF@L [vG@l 8GpP )@]v2(օB:X'Nӹ;5pj !>ҤZI! X%UI"-e %HKΚqx: .G֕x!+h<p$B,vˠ* @$u 1R؟K(~ePR@ p`z0H$!<D/,q2j{Cz: M7kFkk+UBNJŃY8:2(J{#_.?6S z<.0LPm[>jJ"mH@Vzw[8(ރƘ ˠ* TvvEw"_݇կninķR~<4{Nk/O.jW4DXAm6 `W)&ږ33& $RF w?ţ1T5~,$мH \5bγGrƏ X,aW 03}pn^kOn)1CQk ~fq7iT4h2(J֒ܞ @u&1sJL=UK\ Q*F`-蠩ĐfWH "Q)IiIU$P7C Q+2CS ˠ*FH| )Kʑ ba ;31.d-vWDh*-(jn@v,UCTiu"5Mf@Ll.ȌOJWq"71&N_|(SO`1}a&(2EeDuhp57Ph5UQgZ)DAIU"2멀> )u6Wm*{pP L| n(00Nƪe89J<7 6no$Dwl'>y QiD(7wwCl5u(.-é琵i RbiXxS7`(sk,BXL/$#~`nlvwA^+cYHY6g<5$ar ZNKVb=\us P&#hV̇ˉ=A7)'vb|A*'Dڎa; ~gΞ$ N|v64X ׏n)?gf?_}pdNYjgbVL+LŇ4ÌG0wp;c _uCZz7DhswevBa 9=P]b|+>oCI%Ʈ4os>aKctw$ÁHg4݈3b-$PCo^&Aw?n+蛸q.x7?NuVݎ7hiIuLAHĀ\8 m>*sE8]r_C F IgV vha«j's"Tte1>31G23]6q]?&_oQ_#| 5,'O&*`,dB-WN ix(܊t;yIyGV[u䄍B%꽍mf o@ (WCI,S$z$$d 1x 9; #t ~ B4 r4(H@ηHgo҃"XaZT31&u bgp_꩏KMDP{ӠчoGrU킅sVprWr%JWreD9Qr.WE0>U}V\gta[?A5!1`԰&ށ~e8;>IG|F=b!1yYmI89'c)cq 0d@ҶԞOe#%OuC0 C; ’$,t ^Cz㟀SjTjM:ja8q: ?aO!$ Uc`v4TKI@ 5@$ ͅl8'z97A kpWq(2Q; FJ"rݟ0_gӃ̻p$`Ubd PJ(" 5@LH]l՚$vk5xN{4߽W"/cv^jmiX6 `asH@ 'b5Hq~>sx) Ωpy 8uW*QKaHID PvZPFXi+&<'m#(& ,n)X62^@jďPi'mTM_`$bҎ8y 6MBWwWC)[ Dj\@g`LYI*vf l// H ޻\2TE|zdEh X6cНt|r\N*6adK@os &dى(Ynbn($<˔`SCx:5ߝ?%@HZro q?Év VJSoO[hW vQ!f ,RB1<-?гL9*Op$d;PB \NS#4;,Cم'8z: 5ܽ{hZB*Q߁dnjj̿; >$!Tk*0ό!('qyW!B*$BíLF|Y+ewB#kD.0=`q*!(8Hdm#JR6wGEA*+P#pBn{˸w miw*F%hY@7Ѝ&gv X$!&MB~ 2耫]hV: |Qq*KnF!ΝzwFH' )X62n$H I5MgϽ䩤PL?s_eZwŅpվk}HBO(:`kgQYQnݮ'M7UHh|   tj ;;@Mo?uQ0|5+ T[nqnr0x܍qy8m 4'Fv=y$7h&'w[&}Z溚h4D;wn ( yA+xS#^$rp >Tb(>N߃/K";+Lm+TxkF X<9(yXdT7%3 _s`HDV#jHǡڧ;̆8!4L(yj:ssӻQޞg )xWqQA xn<(b, " ]α9ld>$ܱ?W@1|7}&&?h_uX|'j-֨JEU hDxQ#$A#}LPkƅ'Fb`[rޯ2!ޅgqxMB{:drd>O>O|&<Pe{й+*FQaȼ&+ JtAd507z6&.{ǻMO|` 8S`z Hۏ6bۅ rSu^auT'  73#H!/yldLa c03>D8z'r9/'Eӌ ]\]څz<1(;}F1 ,sk!5F]6DG0z|\i65QzKp/>_/|%9MP|ZܮEyB94)|eP-B I!5b(g{ؓv8[]X/۴ٶ+t8zQh$@&4Y=8~׉BnMEsQSS;wVnJ֏SL](x7()tRQ$YJwյ> ̋݅] xP#$jF@ 3ZZ?ao}G1x@@I$`21 ' זuQQBNQ]YxU(|p ))dx3 (qVP Dڷ?,^{ JX7{ԅ WOB9Rwa4 9\&ER>eOЅRocw5߃Ą]Xi3YO1PepĎOV8GZZ+hj2CT?Dvwuq$tD1\N]P>T<\U!Sur>H$|gq2hO:O\<{N(M W؛Ҍ ($ES⤢d0ʜUT*1X62v-$ >x0/S VCLp61,vr Axˋ ?\^ВADz3>u?zy$dAw|`nn#\|9'H@N_ @ E/22ng%޽@2|FK+@J@j g5㚷w.A#H`qb3!L¸H? mp}ig,S˓g"熽$j.^6) %\EgO;v@3<#szu ԅp"A,6IHm 5]Q"uJINMG,i~,Z4g=½oI p%Ԑą_-a|9DH)Sot%ǾcI[6~4/ryyyy xyh^(g\sa~&eu6chxs ڣ8ȿT~8{_:4rᲑ:gM #H@gjՌ4|o=z¨2c/هOR0qՓ;0T4[ i$up;}NyT a^EO{TfgpSa){)ٿfȜ'`0[cL܎O)O3p2>ߦs~M1ֻ}pڀp&>| _ ߶#r$goWp%$EbJ:O"dVEba>?4Y`/ 2ƧmO^EBm*L@VjDB]&3:J^K(0B.|F'ȵp xncsw5k|fCmqƺ 'uƩ#MJ†S H:y)1-u/&/ס8h>YtQ#篤G`=_Sg2ʵբjgБ>MFԫFl3R1 xF#SZDc{mp#WE'mJ:L$OhӺ#z~?88Ֆx6yԛ8;q}Ŀt| C=jW銙?oz'HTe.Ql5/ƹt[ptit's0S;$}.$ZTmpjox'ih90^no07iH{BW-&O{>MG=/a;~x} ïuֲ10"47n_ I؄a4D+H7ׅ\IzjХ#8t&@sr9roHz}qa׃€h'^?1CQҭ~J(|3& Ӵ9XƸKw҉EV7{BVH Y k5]0Ė(%cyF$:joႫ+nd@% D{h5,civ!-0a  מ(r υ/ _(k_.p `uQ7b gi[=}#ͅBPL!}q$"' N(x ԅ/J~Ыr}]o(8;le$>WkQ&BJQ*FA [3"133ڵ7ܟx`ߗoe\_w::,#EVZ)*;tbcj*11 ďJ'NbN:mQ,w P-$OuU֎kh$53<<ˣ]?44a12>f$yA`9{:<ZSd0?6A;H'P$W)P"AuD$`(d\QS$KQ!&!^G%!bO"t4.CS!z.h͘zuU^# ȄjDjDqVp?M 냣l9tD䱯+|F$P  tue|>M?,.Rڟ[#l0Er]^~.!i@$W(Io_lXD̎x',"IKKaqǒA3O7VEd*|馃N %[>AwCR^"Sya7XэMd":DdSXaw$-_*,$y<KGqƻRH*E 7!ˆ h"ePo:/ϕX!uGSr2&JK11 zuGX]f^@q(hiu0F1n)nD!7 E"X+^T~օp(,]y"R\J^U!bHÞI^Ǘ#z7ՔH'[z@ NnP"Ы,N WF(7,xrX_ #-]5F/yk\5[YyһӳsWaG7ÞaؑHǦM[ȾArh@51rռveyWCܴ 6@4| IT5AHg0B`ɍpI7&RI"kW6h ēeG~YRi~n9_  qiDPH$~ʆN 5>8E)w~#lX@mwG[G^hNKQǫ vIyЀtȥ<{(4B_ ĘK GBRTEs$mNf'N Iޖ"x.w;:ފ^/l{f,t)'OE!'W&4ː+ɁI$s.01ܥcFC M; Vh (_tYWB1K׹FFӧQyȻ+>&yyDD256h H:8mT"w`3S0\"A/)"+l -i;$.eE/Ԁbi B?Ӿji.ˡ\Mp\& IbzH HzP$/6!x4 &wF"gVcҥF0.dDuj\dy/(G񔖴-UqDB{+. #\Wh N--!BXoFxq7Ыӳ[LiP}/>%|^B0$/$K5@+Kƫ (f$$g@JQ`Qb $r$:!sX#=C}~q7AVD&ƃ\P?2X!h-9rkD:d`)$ZG1aL9ֿ*n-c[`' Mp|H vE}NOɔY^J-‹ wu'[L+ @rk'`ᣖ^1[0I$cF*T m+5Eª/r I$'OuSq\EZ'TbRzsde7XSsG)_|n?~#D 3΍N- ȹd8vH1#;%N);)#IVzu}OGg.$P(fI(h1 h1 ~`8 ZG G1peb-ܲN yQfbs0Aw$Z"CU9P$idk,P?_p|xf? gJl)B?gIQ'X |TXg:ו_y#,u^?r4rϯK]b1&n®1@&Ԙ< ;!nZpg"տոD@FPO4 sG0QN"Ƭ.<>a$e/6zx)mY^[6f'H%bƐZa8;~l ޿ a#.q )G"7-7N"mh/l{$Xx&L y0yDHeL| 2Yk%X@gt>l^Ha$Kp?W]w t>LKy6t< &c~Ob 1*n3ȣj#t yy(w"Ѣ|{< CJ'xǓkjK"=4j((|UЄe#Ř=#6{* WN/aY=Db@/dݽ] }/ -p$V< PJ%zT{r|zfRv'paWnGH>n !y0V~_)ş< F_a5,v!eć'WS"QD:$ۡ:$׫eayܝ t5!FDbwz@^ߡ#ף8Œ,Z.àqD۰wRj ϡ{2Dzΐe!" =T~FyݚkTF:-g^BJ!PK]4f<8VƝH#d]i|DKⱣ.QnɥGE0]I=L?ɣ ѥ 2.L7e'W_hHUJ![ْ2şt4Bw8 :Aصqa.[zN F1(l3 6T tal,qkǹ<|XeEY7I,@M"Ũ0yF^%ڇ,;qL+=vM>b[i98O_)е_k<'"Zx 6$yuB֭hưǏU%*~pX!i="R"E"M@:ɤɔ!灓t_bVbskk@i='P|R FPH<;4vG?RR_x7 r$"}HOay B_^Y| ܝWvܧ龽12տ1$ ͣad9D S)9 CAp[u$W&]>;i ۃ/1fo}c J $G$D@q2G_DDͳFQI7H;r& I jy/@ãU).$v Y>QN$}qu|uܛ'G@N"8y$) ;3 L1It$jT& HcI0R! $'S YL 9D4 d Ȑ2@\/;0;є85= Þ0| >'aL$F߈m;X)5H*ċHV%Q}U}y\bءb=BkcZa_BJȖso)\Z qQ _S^1DmC<5ϸHF_NK.|$b#*D|Wg,y$;4DHkfRHs6+sy2vB/yA˿ÂC.G"}$.F>`v] s/B֓j&?@v'T|J18y>cT*ΩU~,I])/Xx ήA'=ƔL0Z!Z!SoǖaՀ??<t@:i@H$ %*X{p;/ ԥ|U!:3 ]=ߌx/l>&LO@|@)O8+G#n^mx L "3$Hf _]/cGeꗲgOt"X#']Dm/Ɛ4RTq: uIcO>>$0a M#CḴ$.2Yts6 [KʥbmaOEh$?Ikv)c2a}$ZS>z,#w\"W'кJyWyR4vYz.~)!Rh JG}\7@=5\FcvG9g)?0 ~eB7ͱ7 ӱDZ  TMMq u|_R:$DK1:z7y Ko76B1 r+Zo 9o(oweOi;B^) }#Ğ7YZ(2l[(cZ T|'$H U}X= )cy VWGǘ#^a w ̏$a`4nJLH^[h_zN-[SydrXN*&{i9Pb"24WEƕ ^J.eX*lgK$YUb‰rAؽ#CucN3,-)oSi?R=Q&9K#Gq6h@L$O]0ݻa=<="r)Ey7~a}eۿSV%UQV *")(EB +i~~owj"o>|=B6#sK$oylt1ȣH Z$P-:<\!=˅f>ɢԃEG~k"$MR=4BK?SV峴E$Qh :ݯ4byNW4dž0?`,~!%eE]L2}|jQFmIeC=ny.6!qjq"j@5+P GCh]9h BwvC*DQ3:nOg) 1$ ]$m Bqsd1S [ϩ^S\z ֋2ӻkМ,CiMw-Dp]wP!7gV@,Zv/.7sft#yD H?"Oe Z"? N xhN_`ixȇ;\>\S$ȝInA_ڏ%}{,w-B׭!8 NJqJGk0Ч;pz.ޱ>J`tw1~?{Zzw/O21>|@;MxL fqvІ_}ZhRBA??HV@kHm> \]n ֗4aĻ$K9 G?5'i`p ^疤'*ŗN2"{F9 yrcKb݂qY_]ԌF ű/Gk2E;] ;W^Tv.GHm__"&MD*v.b9^y:@R$D:zcи> 4{Yv-&prmk S%OD<ۚ:D#P:7ڹt'N}^I$ih,B"OӚ)_*rJ@pnIqR(|vbE?Z,kY5pf.cpq(B?jN;a9TD ۄ5ڪoTCxⓃ dW'ݪGpBԋ Q=Ӟf}H%f;]%p.~_1 ɮ.mk))Ky*T 2h A2@tD!_5u%c=k&I(GqbzebBPۣ+d7/,M30i[wi[HSh@n$+Msy_XD; f{CD.'ע'IҖ8H%2[X :\GͽfMbdk̓p a͑6'mh5GH%2IEbǷ<oideE㠅q~-{kH $ GD.HLDH@ o D"NH@[i"@|_4#&ȴQmVjC٪hׇb t83KXFbqQ-ȕZD蹼/S@-Cs~CfT[) jSVt0 mN 4M( "LLҜJ \$Msg<ಂonqe#ץ["DaTfy^{JTpi9KcFKTu9.ؙqAg̯B,*0lJXPLDö2IU'U@$P Mz i+5M6;` nG\eL<"p#@&G@~gCHS_ʛW8qN0*0C- mq\W* [>8m)j*yanvFu).0)$C;Lml&^k1%ڮk/q3tsd Ț'%[ȵVE&"Fr"Ϻ !w@&G 3*⼮0*\K)j{ض#@)T"^=YL5#Pz,M;D]B X<$tsd Ț+%[yȝLD*^Aq},FߕrH;=C.hUZN}}=:-z͉$ڸHPMaJ|lbt <6Elc ڰX6%{-Rp7{'HtB| ZrHE5ȣFWM68:Ű%+5&+ 4?v1vU3:*9?/o>]:y0HJYR2dΖ% {*DU%Wl*y"Ō&K軳YkŒFb,խۜvnl=>}LVbK}tD,e""[X19rYv Dz|/ࡆa$}2FXHh2ƛkgdԚ zo?\gkL/n6i2h$YgrNy5\pq4A"UQL{>j>{ïwΧq5=33y 5| 3K=cCV700D[na+k:xCV[V0C*4mXI#yl)F1cz@,WoW߰^jrtT0,u45kOرj<(P: f$S+! UT3־~5=jzmHa1bpyM!WK+kf͡w z|XBEcQ 2Sl5k:4bY X,XLXlh<¦+l:*E;uTF?]F#FeqUQɋNgm\a9Ƽ0}DU'#*ʳZl9Q 2K),X(씊JP8ooEnqxOg936Q>X{&[l ?2 ˶|3KTJ/*`k1;FR^'m@­i_؄zOAs1H`7rAlK5g;Ò)ᳵ9 +>PGAv%Y ?C0f(`v!5gG ׏?:K p33 @Ii1<)y] A[kG\>`p!9f&eo5#n2Rpn@f'2O/Ť?1p!f׮,!G5P[LꧡÙup&90U\t˯Q(" Ds{F|!j+,^ 5Q(aLp% Vva]*&@M y5)>VW{SZ G_BV8uSx2Y5vmYfxPt'S|git{QK>9L|!%@ 8-yfaR.rٟ@Nv 2EӣT[Q~@!ỡDzdR~ & F0"Cqݗ _ܹqsg3O3|#;@wL\ ![-]7ෳG1g83cɤ~d"*y@knv)] @Ig!a͟:  D@HL!'=)6V+C SP(n F$R[2_wc#v\uD`bT<:wi0sSX{? iqysDNJNx>2n T8l R{u @A<U&F@8 ‘a;{rrr (r2␸s:)0׽Q\R`F;,LŽBJmNvZ:32}}1Q ]5%th|M ; cw sy;X=`Y"-#N _ ɠ(Lqg ~5o$\\hʰK)j/Z`aA2ٕhc`,I0cZlv!>|9!I&D#55Uniw gy?POpA"jH<|vp 'u(>'vg C쇝 Kӫj\WfkmqDqH<IS7)S&>;%e<|WK!'5Oc4vuW4[a ψ!8ntRY^I/Tp}~D`_$q)73E,L]@OqݱFFTFTfU'J 0nq 3)T&v:ų5n A^H{xCZz:Zf%2 םjRU*oS]vFT6Qs)9ѳ)4f8jPXxIPot?H~F aԩ:@Ҹ4J`PWtPы?AHhRzF0E2tV%t=b ).eS'S0nx'˄ t܏NLncjBLJnF`WUK7 )WO!59QogûYH=< 7L@oS@ 86Mr /U xO3Vn%΍.E*}~f֊nH<)zSLz#H63@`g>??Ǯ=J*ʄ/u G"5~Y!K(}i*T$#P(,1phR^ OӇDF؇=,iJ2 R~:y|q{'#?@\,sQT7M,5Ȣh8$̓ÖaCy8B Ҹ8U.~/!zV}) f~_~&POܤn9N `6m, .51xǏ|"]"7R1Ba悑8;?6L|A~\$\^U5@ ܰ !x}=̹4G&`)L"@U߸R@M|_9c9 _#kv\WhּfH ڳ{t6w bF`KsmuXz>K?  B_kq% Q#^ܹry_YG=:ltTʮDz _Y Hq = P `?>g]Q/]&틤] "y | FBId_D:֖oT?x"nVmDjGp« ~4M*P&EmCvtOTlfH #mمwk=0NE{&xH] WvA2Aus }Kמ|}b_@ a_3'U_;!cA굳Ȉ##fQ'\wbW@* Duץ"0fQ3i])|Znͩ)LF$g5O 6H)\m9*|{;!hsцplOqW8 Wu15ms;^tإ]qG( $D+ /A*V~b9 q TI! v)B8?= ?nVzQ| 9we|%]&]3Z캞ħ[Dlau2\wy lF֟3ܠLA qvMpW? ?T~!N+diWя_+ˆzy(/,w,4@90NS2M~B(GT*FW*#?9LӞ#: 1e~nIGc-?1g^K1W6M ɶnRy;eʙg6 f^shnɹe/'rw̛ `gU*Re_ǽ~'={،oV"4FOF}mh̝bGӓb 5qF:#Bځ%_WpYW/L?4pudA Nq#7ՓC|9Tv)|ܴ Zv+_@<Jh/,]\$=#F V=[]A~+#RD9?B,M/A_Bb9 q  m=0ym=GݛmZD~2𙀧C=|o}GcD'P4L4 1 ;#9!LМ|ɛCu_vEPlmv<&-]ge۠Q Iڟ;n;Л@s#@g-Xss•)/F~m?3s7+ D6@fhߕ$t9d+?X&!xa,~_&]ǰڟɼyt1zE0|PE/ߚ$O#?sk@4{- K:CxE_P/CnZnCa2 ѡ`Qϴ3@KMύ,0 cI! ~Q$9L'k,JȘQQ&]ް:eM#6fL|_&'^sڟY'FlECcDc˓kJLH˹@4 3Ǚ(En&]T 1+>Ʈ"bS >8TD$vZ W(^_VD:I, ϢNr." tP%X'{N11>F.O`X~[WC!g[8H_anFk]mR[~{_$DPl}m{!;9ߌI/ NW}/h -5hɍ`Ď8}Jrd8)?-E-?"(86tD>3GgtKd{]5zGG5:E'b粮uewl~ xȁC2̚g|_ԋawe^F&~Ak8*r /Ő=2CN5$-F0C@~(l. <*S  ?m*!1z!6zu7ß*!a`Zk~w놔I䥝N' iBNf8SypڭD2 tYyU{C7 @D'7Hz4q6_ Dsn*pC$Gj/_'/]']>AAx $p+HHV A)`v)B8{1 oջ;l49새=%@c9K6tNhІ@z ֓ ]W'?E.~ȟKH9Lz@`OK: !?J?E&@E "mtE "DMc`M˨)y^<Gs"bRG'?sl`)u[97*ɉK&$.DH OD*F~9I$+('UtgJK.)~7 ,t mC"`3`9v]]O~P"_$9[BسHi+(OOpk.869Vc:ȜRyװGH/Svg>qw21hp sa $Aa̪ UZ?f㧲2 S7Pzޏ ܋>Ĺd|dOKSXfmCɃ[gbk`;ž#wFu7X÷_D79}eG%T~D_ʏ IW\O닙Hز8Q?V2.t4Г>b^ Hpg v&Éz}6/#lnȩfvzЍ,^^w^G ֡udx( Dsn*pcX@镑rl]%B;g#bx+!Q$@Bn+⟡qn`I>0|{|S~ˆ{qxaGvKq,$h5H˄g&]`%O߯{}x㣰B"bLC qDT!?G$xثکГt&?d/R~(?ƙ%p"* =KB`dmۃ وGkqWQR6p&hY&=1v&\>Gv |.o '7ԑ¶S-=KϜln4 sGfj_0'LL?~tT#qR8ͲY'!_lMv>`܁A'}~A w"=n}ʁ"0*Ph+Pjhx x< <)Z@rޟ {ɾW@?!N"̶D&?sad߂dm+nM'I:RsEƯς?HqѮpiT5g~o mDTRc}+}m& ##u??ߏ^1h-8 Wz}ڡ$~-N䏎'R @XMP{gf;^ I.>Otݨ^ tL~^CGFE)vӞGz~{)z&NChIoZ_WgāaVpZ0 cvƷ$Wv>%GF??6i-A4=8ΓRFFO~1b6xeLٍQNik IӟRz3B_pxk8}/D<qc[_~Y/#w&JHGWA_ԡ %edr&3Hd*t/knҚJn"a$t/! _IܘDO~L4 nq:  qk800.-ՏFDHH8v`mQ؇]`&on|F ߶+hwnPo,ht@BceAo tZ- ]sd7FARg< @SMfq!Nт} >??y~f`IiT/3-VFxQ$0l k)JNΏ?Bc`Bа}v ~>om,213%?It*.VT=M} =yӑLJYg. 7/Xs/'eZk5-K GԠ+>x= {!L ?w|ÿH?W.t ^y53bIhFۜQ{BѕB"bb R?]oOeMaN] @IΈ"^C$Ovw`yw徭S#r>[.wmqcoœ4N|UI^٥HW0ku„)oȣN9넠.|  Kzh2 As_Rm@vxcF(,Ol8Baod3QN)ܔM ӫ10)Z7:YHKCVÒI[|=9 CoY܅~#7}#ιۮ no тאa!r)ق(g8QxzA-vcN9ޣ3{$? !OTOYIDO.儣?49?0K,wX R+JXKs̚:ϑdo 9NmW>F*(^悟ąuiZc%@K_M(ڱG[=ۢ06A.(L(I|ia'Ma )_id]DY_j/aDOiRm-<A'Hut ހVG]oaKoCk)Kz!`HtTd[>,} iԑ"z'`^߿uw06 mqFñʣ0IЇW S ?WEݭ,ͰB]yt2d !oP7=l 3XHْ$o䆠CË7LpC*6̞m)GI0bB -_QNrm z\~69 6 ` ݨ(,X4gnN3b1 \Žhaᡅ6XkpѬ}I!Mb=+G*`5-b0xst|b:˫,H/"(7fS("yxoFSA< i'ŰZqpĠ܂YA&>_IcΑmsar-Z> => N_z(/ȯTzπpa,575f7R|YV#BPb?+ ï닺aG]m-hlrAkv`t"izN+/ ޠjO rIg11Y7C!Cg v7ٶl!H?|X7-.8YdܞLvr2ȴW&9Qe)RjyQMW #8i sVW[u4=w{f\H`~<%.9@ IH7%M.MsjmZf>. WRktQA14?M#7^tƙ#ۆz+ZŸ́_-J_\ghxx)^EmS5BƠ?h"!Ls?[AM?K_g6w4X&$?GWb )~6&oMO cf9l#ٶ@  !U4s2z=C!\Hl;m=HhL@D !El}FlE,Ks &~vzWWCT /0I>. hx<M]>E,qh8` \/0@l;s@#Z?ipp1"z IG\+,wF?ѳ+B0)' eQx ґA 4th"V$0Pj+Zn7pizUH*'UӔIS } 2*@)@5'ËyxeB?TsoݖĒ9]m$Nїި7TiXOw*^fm1Ƨ/87A $N.+HH6@  !Ui s2W paIaC[uĹ鵴ҫ?: ` ˗`VG%JW:Lp(vx $9#_1fR#%}CNp TzS1(?c 3}lnLߠ HjJ@*fa`t\:~-qٶ2&#Qr 2ENm } 2)Utgz\mPԼj*L.7T|S1RkI_qB5O_pTt| HShb2gTtYڸZz@U_0kfE? UA|U"bzGQƮF8N# SrtYn,W9 GU3(*V;bg<'ʯ@_d%X~R(&W CL@,cߗN}rbf|5JVS2Ӧkܥ b'?A.\\|S)2cuصFffe`F6kԨ2]Z]KM|ib4^1 [D @D9 $MlrR=ENmd(9U,#+{+/KaޫnƮuȇ&6 Хe[p0^?`L哱ס*q? FcFcٱNͪ I<+mV6OjkxN:e \sL il"kW/zTq6/r!;fIk9#YF"ʛ5].UkDMɨ_ISU.|60Z,4 j%a2-qΨ(gVJ5џW}`bVΐg %ڑ5 $*HHVW UiRX~22RxXأvzyz4Ϯ&fD?T†.ͪq\&N\8>+D, Z,=M?^.s?Q.s?Y.˯]˶5}d0?.S5 ]c*s3C5LN]k8^S4S"~LDsf(,}ֱ٣Z/#AH2e(@SEn+@G GL#"s_?_F`jd5X4̌ 2T ]innޢB.O 1E`Ys$^ZY r&IV eTܞ,'M)d(i+'K12xx_>si}/<';PͲfU[F7YQ׬LDsJ=;Vwڔ)՝~_՜>(L20DN 1@2 D(peF /sdpm__^ڳ+ 2f+1k*q( ]%’gVldѺtʿJ;¢ӻ?V,Dǯ[qH s ǰBdtOژҠԗ+* KeGqhМg4;ЈoQ-ͫVZ1k\hiia¬py,?Nco…O4&iY -ͪXsmAc^ŢmM f*Cf nhaWvGW~zЍOY?vOXi Ӝ ;.;®3;d2Cke4w6T; + Cl;#oLS6a-~aJG>gv`G;g1~(wOo ˇx {7yun"**N;ΪܨCP:ԡuCP:ԡuCP:ԡuCP:ԡuczwsbIENDB`alligator-23.08.5/android/version.gradle.in000066400000000000000000000002371457614656200205630ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2021 Volker Krause // SPDX-License-Identifier: BSD-3-Clause ext { projectVersionFull = "@PROJECT_VERSION@" } alligator-23.08.5/logo.png000066400000000000000000000430621457614656200153420ustar00rootroot00000000000000PNG  IHDR\rfsBIT|d pHYsNNsjhtEXtSoftwarewww.inkscape.org< IDATxwřaFi *$!! %1g>ٯ_|wl18%$!!6M\==ӓnH3b+tO?O=TS`0 `0 `0 `0 `0 `0 `0 `0 `0 `0 +d+P+O/ȯ9G p< Lvg!a@" SőgaLvjO^{ .bW5?P C+Yյoؓ]Jix:ŎQWĠx+ 5~4PbJD>O'&JhXq:|s)'|PݠQy2;'>h8`{H;{97\Eb(xƸ#ɮSkς'. D'u%9(}fɮEC(wwdׅp $;tuQO&&:?ۺBh<)dׅJT&O˗~uɬǤ*cjg&?D4-r&q/2Yu&l={ ?\B4'>rdaR,n<07Ob0C5}_ `]ʬ[gZ>Wy F3=֏֫t??% Âwգ<ђjR:1m.Ä +j~S|*8GIt`4 Ԡ4|8𣏕N`x1g0p/̏}zz~Z ͠=_Jr G-| ?Qe8;(nt2lnp2On`3 Z^LpS;Do 0MD^xS;6)ʼnnIw b}1S1 ;f8FσMW9c}s8i7fl# s[ca\4z‡ѮNz($c=%:# gBk=gȻy<*B@(>R2rCsFd`lEMtt(!,gT@R!i Ń,LA7 {|upGOCX7vc7T*]dPۤuss3_A#NJA AN*s9[[fbkL`hђX7v ֜ތc|gs2`y%4oP 7"0sxiXZǻǃF$f mUGFP9|gz ω|Q~6h2 9#)8Ý@S6@@`! p&,1yg#:)xs$&ю)hPS-?\ \۔zZg 2(Jchܰ FG#!p[fZ+rZ;9/Z+}+sf7@)F:Bq"_6N :8lm7p>5.(~ ?c /Qu0KQdW!9qo) 2ڑuSb83 hoaz\=)_,_@7A=QӪ03XwdKk?xX2"8@zI0+K( p &Xwl):0]`A|p\yrAߒ[_~ظeیA PEF˙v)6N4}|Hw%h: 0(Gp왫s 87 ┻=|"%7Uyzo _y Cxe 0%pv@8m9 .?=3L7DrCO gP59zaJAGC5=>.J)@V6 <B`Fm$$?+  L%3%pu`shvi8<$)5)0Pg/߼1u1 _{5ł9Xln].kszT oCwCڇ_#}ГmGκglatpx641@vru.@E%1{PV]76:PG'p]fj?>J 9=0f-nD"0}Ϡ?vs2ufK묚 ?W> c!B%wL>Q^JuS S .5()$LiK1햟O"614cJ`$x/zkJ miE@j, 7k"L[{c/|cVHJ:[Egqgm~34x >7o׉Wa)jʿR\Sc-?E Oڒ%7`}udsߒ[`v$c\8:Vg%z~]Gf@liSS:?qd)}"hqw|cu߀nAeIm|Z* L 48L8Đ~ogM^Jɵ*H=pn]h}f羮uAhpp-ASy*?*h*8ObLt~?|/s$uL 46(v4?/?],m8 MamS!E- VG) 8! #kGEn3x<} qx<ǁy<ǹ_t-詬%@%lpM8#O |SpU^޳G5RRJyJTU$ˈ'DcGHJUuZι=~n;u .£gO0+rZ[0\(4 H"!"H@^S]Ky0sf 3%H0[Zj 6anGMz]s Jh,pB8 !VLQf/VbJq`&pYSk(%%@E. e}SAp@+4T͘8Q <.v{??M70d ;=շ0DK`TI.'CY{%Į;`p À(P%\駗R [u0VL2\.B寑g%(.('^Q0%0I00yv6~8B~#0=`h8xj[ah'֣'u`Asn37`8߀#K_>8 ]w=?=/@F <$n ` `y64 Z OMA?AǑm {3F"Ϧ ]x'쪧r  =^_JSktҾ!{Vew{n0 $% ,q* fw@p6h8 ᰷t"ϊ'cebS6QŸ!w0| j%4=GH$T||n$5sP7L%Pr F@Ħ54!>߲ԧ"Qr^>[GȚhyog/V3/Ɣ~_ġQ`sr, bs (hiՙ\?!k@N?ueD1H=s=[pns1%,|DӡUkp`=Yw矻.?\ŅߞV;_݌ؽkcO4T,# l֠-27TuLAx, ]*[gUb\}2 ygRiD~"]zap{4 xx"kg%:kgN1f L8L$/GՔvgo)Y<' Bߞ7߲BH4Yt \@Rk+x' ât!/qeYxicg 5ۡQDx?Z 2b$# h{w;1%000FD?۽>4>?{bCYo">nD7O4Xrjw h}uJW0&jJ%. {1>ג3J*Rd[BlV6@;gyR$% ¿ǎ"kaS~"tHP#[Υs.8W^N1yer_,*Z~R/vݏ.}3!C7 .4|KoI_/L'gJIM7wXph[V1:[?@G7+ @,hpN19ap:SU?fw֜T!MK?@4C7W5g_Aދa< p|FDN~}[g5(И u=kCD?M[S?܈\6 CދE% 2@tZ`Jsn:W>]b0V>>pˆD'; ^Y2%P=)zOtsZ ږ;?pѝyK(9Թ2 嗝r=_ׂbs=|+.]*i ɉ W ."=b"@887,,cĵWB|o/A=P>HY>|9:, H:8O;ǐ(B @`c%>/1Ĺ24K'+ C0tZ*Vxw*y;0$D$9A]3dHS 8@8RN~ ҕx @= F_"z3%PNȜG[x6_L=z/`SrZK˹ j,'V@tfg[ U'xҦdgJ$MF]~M+',r͠@6p&*x 㜛F}1\s^R ۀ'܅wwA r~ȅ9X VP_ mWAH&ڎpXoSz/(t5I[l18}M{j;yv !r9z=!xWS2N1V% ' 3߀;DDRx\w=~ ~ԹBl w_Z<6, T-W%ٳ]y3~m|&`hvQ3<[ M*Wn } 7%Y 7a?7|Dg[JKr">ݿmk~ƚZhJ)ԳxMعU !`ft\~5nj, Bpq!O)F q6_XSӛ92eme-< ]</"=-}?#UzX-L%@iN o|2w7$GO›1yb NAU5 aWox{3KK: aoi(yGwgFk%1sR mzEkp6A)dS@Cy'<-}#BBKtz oyDZg׍E~}5@YI97\xcueSj+/Pйc 9ׁq[V(n WrLyhyMkQ̪4QiYaP:ixAļ UO$O} Ha˅R܋>пKS˦ 8gW >Q4e RZgQUBIKJRED{֥_J;AeK@*M<-i{f)ϟ<=XU0o #'_\pYYm.PlP-= daKuJi {/gS,#)Iy3v󬁚4Qi'sE 4k낂Ky?kUMC}R.<{2tW`}{_4m&蹪 O^g\ ohܻ\p,+oݘp.t:MTZ<@*? n<}QMKkt"7|KFkyjA'?xV-/ ٝSO{Ve+ #E˵bLV˟Kr23aIu$ph#p/6u*QҳpHOյhɼ;k{_ŲK^׾1~^ȉ%g H+' l+6QZ(x?.||)^smP~U) >"R t=hȘ!Mʻ%_)JowG=bhd@3zpոץcHI)~ @VOdΊXnaZTGgB'$<A(q\4OeT*@CОBֹDxV܉ Lie=@oO9"ia@bvL^:rq !ނ]W_J̧73d ,DZ3 "x/ kDlVYk(ΞB3/ oDҰ@2V}vx2Rd;uޔL?ŧFnsIK֢!YVUw YehiN,?5gj5#B뢓yܑjW€ǿۜO9+X/˶ XF^J1T}$ɪ+ole旨oϩt2 b4)oU#W-{|2 9|F /}X#3Dԇv<B[h-L24S74poO|+iN6 $.js/C= eC5_O)ɀ,ǂ=86_s.Άn| dRjqtq/{ OS^촒N0H75@'Q&~Y,C|3cbGvb~jPE$STık8 h|2 EyܺPJa+iHY{ ʇ/ypsc꧎جU7̟w]J0E|2)!(=`.Z F9 L)쪢CMP4]}xط $g0s9y{qUXwrSCY /Θ*=kpF\9`P/} 9-~"++]^u'7 Q)xl~D~>0g5 m@/ O;SNs[  ,T4+/u+"?xӪ-NKJDQ(;V0m70JN<'J]1L3>i_tМz9āKsޥ89 >*,7:H`oS8 /'2D^pذը/ۄ?z_ZrŸGw 4$JAs bZr'aSr\FfԠ@n4C8nZc} ӿWNU&"Cr? wLqhy-NS!Vxd^' |-hV᷐~V"( .:` KPϡ HדfkH4ŀxq8H_\s#߫c7f 4mP8"Q,CU5,%А (?8bQ9k;z ؁Y6x|*aDp(>l:FN@˵ ]l[/[,>46$PN@bJfJF^R 3`ǼKptE`$B[{2 b`XŠi,dY j[2!*I^dw/r fP\EvױF᷐ax]#iP5 b!Fq$ a>au y8=;].fPL,=گRq Ha5vF?P);=xW{u (zS/D+JDHv+ 53}XJJgaADG O )<3uڏ;{gyQQ}9g v/ l]95Fu I1 IQ QU +QRZD6ZȲ/BŔ,*.i- bʦ-~Eizʏo`bah$cÈ2cv1>//Ǯ0ܳ4gb-x)3`ZaXN`0ƈ1?[$:hBG;# x>0nmzSHKV`J1?pba?kMqzѝ@y6 V9KKތ]Aܹ'ņ 8Re]àADMLxߕJ%, a 4c㸜 yMr'}XXW@+Wf~àejNI9 6vAFЖucH_ANsSm{+^Yt֯ϱ 4 MƐLjEX)m"X;\oS%0 _z~6^w"h)9S *N% )aZ=JkdF0jalmS@gܺ&oΦ 3HQ$ԊPqp`=y@C(ږ)Mv5 N Q,/*l0dS5WW%̐[1܇0tZLynAa_Wn6AyIrRJSb#HNpѮJG]Lp6>=G1ܾMAP<@V*(VUZjBI:tـZb¿';!t 2muE6zLŬ@LIbH`Hl)Bwz3-'wϹI"q)Xq/eYLB˄Tj \f8=.>ŞB2uNϪ)?eiYXR1Qe61_8 QcM6 Lp69N$~ _:9 )XsYws&uP_ OFO ܬByz ҂ L)m_W!u(G:X*\*~jjZJu٨dܸ!`;g,ds*GnƼ~VJ1&1"E1&'D\O:,>s[][&~B<+EA;ɜ $beʄ4% _Ş܋qpjmO{(Ղ.˱ R eǘØȚhx p{0X# ?PߑZѸ?`.>X="Z"ٓ| @5 MZuBA?3CpbJ/Ϻ_X(!y9jkBNTKa|ѧoc7iNK,g)o>;X}蹊e+ |Z"~pmSҌ>o=NT\eu X4*oiŮ:o=XY#9}A.ri9VȚēL8PÛ_›Fv["u ?P-0oVĹꦂ6 ^ X|H?sKl.>Y 6@_kQaaKY@\KƠ7F_-]j7 JaMljA@MVĉ~ ˇ(0/ c!*'RCO)DPpex0 # L܆sEY܈\npYK sk#iċ}܋Zb"9-z^G&rZSgSU$8j@P.z׌7ݹ$ã͌ەȢp\l m w{f_we*Nhs X{V""bP&axq*.5c=ŇhkuMï81@UpmU߶v@lCגsE4Ԣ4L+L.#*} գBD ^RÅoDirUpQ)^<g$E*ق瞷)r]IKЌq 7pQ ݍgO#nnw(;5_جAU侼|!n }˰eE82}hoœ(]5Br{Ȥ/g}M9  ZRb h-Gn\ރakW AEp7DzI? [((~Nlq_kv9SX@C3W~g 0HH $pHӏ=X95g "`@.wO7ư&tbL23od U H0t$eze7Z"ї{-l~1CKI-BJZyںyM I$$UnJ K`Cd.%Yn찖`  xe7LIaβ5:Iv ^P(OE5>$!+<#ne W^1W]wF3 /؂ۮnKw2iYaf;!őКpa\32ۍES7;w9`6:o"T8+0].U$!%&qУ^\32V^9˄NpۃO "Ա J4"( INBsH ^~t7V&4+sWĉY)L■4PA n˯Z!(Hd99!O BAhlT۶'٢gZyP *ŽCJ)TY,' Iͷ"-c`0 8𢫀`#o2*(Eu,IPTM9HS>}[0o|QW^Tנ(2Y*hxС]~t'Ə(LLkđ Lx`vmn85 ,A$hjsĺ/PqYUly1kF^m4à 8]kHg,q߂ cCPd zO їpU ?Ԁ#/3]Mkq+CӠkxA ! J[@KT\i7m #;Юܔ \ @jMl0m~1}U`BW4hMJhXtW_ᗰ.rab?(*;# @JZ3@WT$FFmi쾿A* 4IȠM.(ǎaȋnd'V,& )Ȉ:# $F>n8 ԴcvZn~y}rvӉw1D"t|Q yvb|]/n0(4B^bQnzS(lO$Ba(M8pfpS*pyx/nz"ŷ+g$4QG*iqV~9iFL_ q'vD 內[8vF=؄c b1w$䇝x)X>z ;:Q#i}i\=r:k$1 :# `lb#9D bݧYǫ瞫);I,J`pȾ(eS;=N`OljbIIxpyX?t('ʹi;nό20nfgc/^z[&=~M6!xܩ2SA=mBqj+'NaoSELSx'p dɃ  'xةr}.~Ogh)F%M73p26KS&Kר.w]jƯÄtL4 f ?@񥥿ý'/+G!x!êvTs6qǙg?G@KelFRsoL1xzhg]fK/n]}zGwʇǩ3NK1&YpghFEUSD p5tv/*xvӷl:.Uo8yX*˜/8qB)>vatZ&ΦkD(H8h3<~w`cGn[wz RS]XlBZNZB)>qO̖ҕ;τ?>D~=P}6ˀ Qt^iGwջz5C('O wy&xt3o%y/ױjYL{,Og5-TB>x{zU!r/@4Qb;"nY_p$43<nej}\^7ގ?Ą9MaWd !zJ } r;q깾プ~tKpNBUIt Q"3[w|y8 tjqu%P/b 4utհC^][<1ᕫ{{eAC42:nUbƹH|ߠG`hXGC򞆭'N=F3;_ F_^V,>iz;nRGPOX(i\kCk֏"Ӯ%a3i3l x Y{6RCkH{C.H:}*| org.kde.alligator Alligator Alligator Alligator Alligator Alligator Alligator Alligator Alligator Alligator Alligator Alligator Alligator Alligator एल्लिगेटर (Alligator) Alligator Alligator Alligator Alligator Alligator Alligator Alligator Alligator ਐਲੀਗੇਟਰ Alligator Alligator Alligator Alligator Alligator Alligator Alligator Alligator Aligatör Alligator xxAlligatorxx Alligator Alligator Feed reader for mobile devices Lector de fonts per a dispositius mòbils Lector de fonts per a dispositius mòbils Čtečka kanálů pro mobilní zařízení Nachrichtenbetrachter für Mobilgeräte Feed reader for mobile devices Flulegilo Lector de emisiones web para dispositivos móviles Mobiilseadmete uudistelugeja Gailu mugikorretarako web-jario irakurlea Syötelukija mobiililaitteille Lecteur de fils d'actualité pour les périphériques mobiles Lector de novas para dispositivos móbiles. मोबाइल उपकरणो के लिए फ़ीड रीडर Hírolvasó mobil eszközökre Lector de syndication per dispositivos mobile Feed reader untuk peranti-peranti ponsel Lettore di fonti per dispositivi mobili სიახლეების ლენტის მკითხველი მობილური მოწყობილობებისთვის 모바일 장치용 피드 리더 Feedlezer voor mobiele apparaten Kjeldelesar for mobile einingar ਮੋਬਾਈਲ ਡਿਵਾਈਸਾਂ ਲਈ ਫੀਡ ਰੀਡਰ Darmowy czytnik kanałów dla urządzeń przenośnych Leitor de fontes para dispositivos móveis Leitor de fonte de notícias para dispositivos móveis Cititor de fluxuri pentru dispozitive mobile Чтение лент новостей для мобильных устройств Bralnik novic za mobilne naprave Kanalläsare för mobila apparater Taşınabilir aygıtlar için besleme okuyucu Програма для читання подач на мобільних пристроях xxFeed reader for mobile devicesxx 针对移动设备设计的新闻源阅读器 行動裝置用的 feed 閱讀器 CC0-1.0 GPL-2.0-or-later https://apps.kde.org/alligator https://kde.org/community/donations https://bugs.kde.org/enter_bug.cgi?product=Alligator KDE Community La comunitat KDE La comunitat KDE Komunita KDE KDE-Gemeinschaft KDE Community KDE-Komunumo Comunidad KDE KDE kogukond KDE komunitatea KDE-yhteisö Communauté KDE Comunidade KDE केडीई समुदाय A KDE Közösség Communitate de KDE Komunitas KDE Comunità KDE KDE Community KDE 커뮤니티 KDE gemeenschap KDE-fellesskapet ਕੇਡੀਈ ਕਮਿਊਨਟੀ Społeczność KDE Comunidade do KDE Comunidade KDE Comunitatea KDE Сообщество KDE KDE komunita Skupnost KDE KDE-gemenskapen KDE Topluluğu Спільнота KDE xxKDE Communityxx KDE 社区 KDE 社群

Alligator is a mobile feed reader

L'Alligator és un lector de fonts per al mòbil

Alligator és un lector de fonts per al mòbil

Alligator je mobilní čtečka kanálů

Alligator ist ein mobiler Nachrichtenbetrachter

Alligator is a mobile feed reader

Alligator estas poŝtelefona flulegilo

Alligator es un lector móvil de emisiones web

Alligator on mobiilide uudistelugeja

Alligator mugikorrerako web-jario irakurle bat da

Alligator on mobiilisyötelukija

Alligator est un lecteur nomade de fils d'actualité

Alligator é un lector de novas para móbiles.

एल्लिगेटर (Alligator) मोबाइल फ़ीड रीडर है

AZ Alligator egy mobilos hírolvasó

Alligator es un lector de syndicationes mobile

Alligator adalah sebuah feed reader ponsel

Alligator è un lettore di fonti mobile

Alligator სიახლეების ლენტის მკითხველია მობილურისთვის

Alligator는 모바일 피드 리더입니다

Alligator is een mobiele feedlezer

Alligator er ein kjeldelesar for mobile einingar

ਐਲੀਗੇਟਰ ਮੋਬਾਈਲ ਫੀਡਰ ਰੀਡਰ ਹੈ

Alligator jest przenośnym czytnikiem kanałów

O Alligator é um leitor móvel de fontes de notícias

O Alligator é um leitor de fonte de notícias móvel

Alligator e un cititor mobil de fluxuri

Alligator — программа чтения лент новостей для мобильных устройств

Alligator je mobilni bralnik novic

Alligator är en mobil kanalläsare

Aligatör bir taşınabilir besleme okuyucusudur

Alligator — програма для читання подач на мобільних пристроях

xxAlligator is a mobile feed readerxx

Alligator 是一款手机新闻源阅读器

Alligator 是一個行動裝置用的 feed 閱讀器

alligator Alligator feed list on the desktop Llista de fonts a l'Alligator a l'escriptori Llista de fonts d'Alligator en l'escriptori Seznam kanálů Alligatoru na počítači Alligator mit der Liste der Nachrichtenquellen auf der Arbeitsfläche Alligator feed list on the desktop Alligator-abonfluo sur la labortablo Lista de emisiones de Alligator en el escritorio Alligatorreko jario-zerrenda mahaigainean Alligatorin syöteluettelo työpöydällä Liste de fils d'actualités Alligator sur le bureau Lista de fontes de Alligator no escritorio. Alligator hírlista az asztalon Lista de syndication de Alligator sur le scriptorio Daftar feed Alligator di desktop Elenco delle fonti di Alligator sul desktop Alligator -ის ლენტის სია სამუშაო მაგიდაზე 데스크톱에서의 Alligator 피드 목록 Alligator feed-lijst op het bureaublad Kjeldelista i Alligator på ein PC ਡੈਸਕਟਾਪ ਉੱਤੇ ਐਲੀਗੇਟਰ ਫੀਡ ਸੂਚੀ Lista kanałów Alligator na pulpicie A lista de fontes do Alligator num computador Lista de fontes do Alligator na área de trabalho Список лент новостей Alligator на рабочем столе Alligator seznam virov na namizju Alligator kanallista på skrivbordet Masaüstünde Aligatör besleme listesi Список подач Alligator на стільниці xxAlligator feed list on the desktopxx 桌面上的 Alligator 新闻源列表 桌面上的 Alligator feed 列表 https://cdn.kde.org/screenshots/alligator/alligator-desktop.png Alligator on a phone Alligator a un telèfon Alligator a un telèfon Alligator na telefonu Alligator auf einem Mobiltelefon Alligator on a phone Alligator en poŝtelefono Alligator para móviles Alligator telefono batean Alligator puhelimessa Alligator sur un téléphone Alligator nun teléfono. Alligator telefonon Alligator sur un telephono Alligator di sebuah ponsel Alligator su un telefono Alligator ტელელფონზე 휴대폰에서의 Alligator Alligator op een telefoon Alligator på ein telefon ਫ਼ੋਨ ਉੱਤੇ ਐਲੀਗੇਟਰ Alligator na telefonie O Alligator no telefone Alligator no celular Alligator на телефоне Alligator na telefonu Alligator på en telefon Telefonda Aligatör Alligator на телефоні xxAlligator on a phonexx 手机上的 Aligator 手機上的 Alligator https://cdn.kde.org/screenshots/alligator/alligator-mobile.png org.kde.alligator.desktop https://plasma-mobile.org/2023/01/30/january-blog-post/

Translations update

https://plasma-mobile.org/2022/11/30/plasma-mobile-gear-22-11/ https://www.plasma-mobile.org/2022/09/27/plasma-mobile-gear-22-09/ https://www.plasma-mobile.org/2022/06/28/plasma-mobile-gear-22-06/
  • Support for Qt6 based build
https://www.plasma-mobile.org/2022/04/26/plasma-mobile-gear-22-04/
  • General code-refactoring and translations updates
https://www.plasma-mobile.org/2022/02/09/plasma-mobile-gear-22-02/
  • Wrap entry title
  • Refresh all feeds on startup, and do not require manual refresh
  • Add page to view all entries in one list
  • Fix crash on refreshing
  • Allow to filter read entries
https://www.plasma-mobile.org/2021/12/07/plasma-mobile-gear-21-12/
  • Fix memory leak when fetching feeds
https://www.plasma-mobile.org/2021/08/31/plasma-mobile-gear-21-08/ https://www.plasma-mobile.org/2021/07/20/plasma-mobile-gear-21-07/

Plasma Mobile Gear 21.06 release

  • Fix height of resized images
https://www.plasma-mobile.org/2021/06/10/plasma-mobile-update-june/
alligator-23.08.5/org.kde.alligator.desktop000077500000000000000000000071121457614656200205740ustar00rootroot00000000000000# SPDX-License-Identifier: CC0-1.0 # SPDX-FileCopyrightText: 2020 Tobias Fella [Desktop Entry] Name=Alligator Name[ca]=Alligator Name[ca@valencia]=Alligator Name[cs]=Alligator Name[de]=Alligator Name[en_GB]=Alligator Name[eo]=Alligator Name[es]=Alligator Name[et]=Alligator Name[eu]=Alligator Name[fi]=Alligator Name[fr]=Alligator Name[gl]=Alligator Name[hi]=एल्लिगेटर (Alligator) Name[hu]=Alligator Name[ia]=Alligator Name[it]=Alligator Name[ka]=Alligator Name[ko]=Alligator Name[nl]=Alligator Name[nn]=Alligator Name[pa]=ਐਲੀਗੇਟਰ Name[pl]=Alligator Name[pt]=Alligator Name[pt_BR]=Alligator Name[ru]=Alligator Name[sk]=Alligator Name[sl]=Alligator Name[sv]=Alligator Name[tr]=Aligatör Name[uk]=Alligator Name[x-test]=xxAlligatorxx Name[zh_CN]=短吻鳄 Name[zh_TW]=Alligator Comment=Mobile Feed Reader Comment[ca]=Lector de fonts per al mòbil Comment[ca@valencia]=Lector de fonts per al mòbil Comment[cs]=Mobilní čtečka kanálů Comment[de]=Mobiler Nachrichtenbetrachter Comment[en_GB]=Mobile Feed Reader Comment[eo]=Poŝtelefona Flulegilo Comment[es]=Lector móvil de emisiones web Comment[et]=Mobiili uudistelugeja Comment[eu]=Mugikorrerako web-jario irakurlea Comment[fi]=Mobiilisyötelukija Comment[fr]=Lecteur nomade de fils d'actualité Comment[gl]=Lector de novas para móbil. Comment[hi]=मोबाइल फ़ीड रीडर Comment[hu]=Mobil hírolvasó Comment[ia]=Lector de syndicationes Mobile Comment[it]=Lettore di fonti mobile Comment[ka]=მობილური ლენტის მკითხველი Comment[ko]=모바일 피드 리더 Comment[nl]=Mobiele feedlezer Comment[nn]=Mobil kjeldelesar Comment[pa]=ਮੋਬਾਈਲ ਫੀਡ ਰੀਡਰ Comment[pl]=Przenośny czytnik kanałów Comment[pt]=Leitor Móvel de Fontes Comment[pt_BR]=Leitor de fonte de notícias móvel Comment[ru]=Чтение лент новостей для мобильных устройств Comment[sk]=Mobilná čítačka kanálov Comment[sl]=Mobilni bralnik novic Comment[sv]=Mobil kanalläsare Comment[tr]=Taşınabilir Besleme Okuyucusu Comment[uk]=Програма для читання подач на мобільному Comment[x-test]=xxMobile Feed Readerxx Comment[zh_CN]=手机新闻源阅读器 Comment[zh_TW]=行動版 feed 閱讀器 GenericName=Feed Reader GenericName[ca]=Lector de fonts GenericName[ca@valencia]=Lector de fonts GenericName[cs]=Čtečka kanálů GenericName[de]=Nachrichtenbetrachter GenericName[en_GB]=Feed Reader GenericName[eo]=Flulegilo GenericName[es]=Lector de emisiones web GenericName[et]=Uudistelugeja GenericName[eu]=Web-jario irakurlea GenericName[fi]=Syötteenlukija GenericName[fr]=Lecteur de fils d'actualité GenericName[gl]=Lector de novas GenericName[hi]=फ़ीड रीडर GenericName[hu]=Hírolvasó GenericName[ia]=Lector de syndication GenericName[it]=Lettore di fonti GenericName[ka]=ლენტის მკითხველი GenericName[ko]=피드 리더 GenericName[nl]=Feedlezer GenericName[nn]=Kjeldelesar GenericName[pa]=ਫੀਡ ਰੀਡਰ GenericName[pl]=Czytnik kanałów GenericName[pt]=Leitor de Fontes GenericName[pt_BR]=Leitor de fontes de notícias GenericName[ru]=Чтение лент новостей GenericName[sk]=Čítačka RSS kanálov GenericName[sl]=Bralnik novic GenericName[sv]=Kanalläsare GenericName[tr]=Besleme Okuyucusu GenericName[uk]=Читання подач GenericName[x-test]=xxFeed Readerxx GenericName[zh_CN]=新闻源阅读器 GenericName[zh_TW]=Feed 閱讀器 Icon=alligator Exec=alligator Type=Application Categories=Network;Qt;KDE;Feed; Terminal=false InitialPreference=10 alligator-23.08.5/po/000077500000000000000000000000001457614656200143055ustar00rootroot00000000000000alligator-23.08.5/po/ca/000077500000000000000000000000001457614656200146705ustar00rootroot00000000000000alligator-23.08.5/po/ca/alligator.po000066400000000000000000000200461457614656200172100ustar00rootroot00000000000000# Translation of alligator.po to Catalan # Copyright (C) 2020-2023 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # # Josep M. Ferrer , 2020, 2022, 2023. # Antoni Bella Pérez , 2021, 2022. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-22 09:26+0100\n" "Last-Translator: Josep M. Ferrer \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-Accelerator-Marker: &\n" "X-Generator: Lokalize 20.12.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Josep M. Ferrer" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "txemaq@gmail.com" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Predeterminat" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Grup predeterminat de fonts" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "XML no vàlid" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Cap analitzador ha acceptat l'XML" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Error en analitzar la font" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Lector de fonts" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 KDE Community" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Lector de fonts RSS/Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Afegeix una font nova a la base de dades." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "URL de la font" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Afegeix una font" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Marca les entrades com a llegides" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Totes les fonts" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Arranjament" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Gestiona les fonts" # skip-rule: t-apo_fim #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Quant a l'" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Edita la font" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Nom a mostrar:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Grup:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "per" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Detalls" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Actualitza" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Expandeix la barra lateral" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Redueix la barra lateral" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Totes les entrades" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Error" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Error (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "No hi ha cap entrada sense llegir disponible" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "No hi ha cap entrada disponible" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Tot" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Sense llegir" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Obre en un navegador" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Detalls" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "per %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Subscrit des de: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "darrera actualització: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 publicacions, %2 sense llegir" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Grup de fonts" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Nom:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Descripció:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 entrada sense llegir" msgstr[1] "%1 entrades sense llegir" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Suprimeix aquesta font" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Edita aquesta font" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Gestiona les fonts" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Actualitza totes les fonts" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Gestiona els grups de fonts" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Importa fonts…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Exporta les fonts…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Afegeix una font…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Encara no s'ha afegit cap font" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Importa fonts" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Tots els fitxers (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "Fitxers XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "Fitxers OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Exporta les fonts" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Tots els fitxers" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Grups" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Afegeix un grup…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Elimina" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Estableix com a predeterminat" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Encara no s'ha afegit cap grup" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Afegeix un grup" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Llista d'articles" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Suprimeix després:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Mai" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Articles" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Dies" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Setmanes" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Mesos" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Article" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Mida del tipus de lletra:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Usa la predeterminada del sistema" alligator-23.08.5/po/ca@valencia/000077500000000000000000000000001457614656200164735ustar00rootroot00000000000000alligator-23.08.5/po/ca@valencia/alligator.po000066400000000000000000000201711457614656200210120ustar00rootroot00000000000000# Translation of alligator.po to Catalan (Valencian) # Copyright (C) 2020-2023 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # # Josep M. Ferrer , 2020, 2022, 2023. # Antoni Bella Pérez , 2021, 2022. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-22 09:26+0100\n" "Last-Translator: Josep M. Ferrer \n" "Language-Team: Catalan \n" "Language: ca@valencia\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" "X-Generator: Lokalize 20.12.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Josep M. Ferrer" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "txemaq@gmail.com" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Predeterminat" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Grup predeterminat de fonts" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "XML no vàlid" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Cap analitzador ha acceptat l'XML" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "S'ha produït un error en l'anàlisi sintàctica de la font" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Lector de fonts" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 Comunitat KDE" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Lector de fonts RSS/Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Afig una font nova a la base de dades." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "URL de la font" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Afig una font" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Marca les entrades com a llegides" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Totes les fonts" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Configuració" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Gestiona les fonts" # skip-rule: t-apo_fim #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Quant a l'" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Edita la font" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Nom que s'ha de mostrar:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Grup:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "per" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Detalls" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Actualitza" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Expandix la barra lateral" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Reduïx la barra lateral" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Totes les entrades" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "S'ha produït un error" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "S'ha produït un error (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "No hi ha disponible cap entrada sense llegir" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "No hi ha cap entrada disponible" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Tot" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Sense llegir" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Obri en un navegador" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Detalls" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "per %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Subscrit des de: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "última actualització: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 publicacions, %2 sense llegir" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Grup de fonts" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Nom:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Descripció:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 entrada sense llegir" msgstr[1] "%1 entrades sense llegir" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Suprimix esta font" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Edita esta font" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Gestiona les fonts" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Actualitza totes les fonts" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Gestiona els grups de fonts" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Importa fonts…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Exporta les fonts…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Afig una font…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Encara no s'ha afegit cap font" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Importa fonts" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Tots els fitxers (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "Fitxers en XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "Fitxers OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Exporta les fonts" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Tots els fitxers" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Grups" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Afig un grup…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Elimina" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Establix com a predeterminat" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Encara no s'ha afegit cap grup" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Afig un grup" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Llista d'articles" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Suprimix després:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Mai" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Articles" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Dies" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Setmanes" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Mesos" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Article" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Mida del tipus de lletra:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Utilitza la predeterminada del sistema" alligator-23.08.5/po/cs/000077500000000000000000000000001457614656200147125ustar00rootroot00000000000000alligator-23.08.5/po/cs/alligator.po000066400000000000000000000176661457614656200172500ustar00rootroot00000000000000# Copyright (C) 2023 This file is copyright: # This file is distributed under the same license as the alligator package. # SPDX-FileCopyrightText: 2020, 2021, 2022, 2023 Vit Pelcak # msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-22 10:59+0100\n" "Last-Translator: Vit Pelcak \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: Lokalize 23.08.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Vít Pelčák" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "vit@pelcak.org" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Výchozí" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Výchozí skupina kanálů" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "Neplatné XML" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Žádný analyzátor XML nepřijal" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Chyba při zpracování kanálu" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Čtečka kanálů" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 Komunita KDE" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Čtečka kanálů RSS/Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Přidá do databáze nový kanál." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "URL kanálu" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Přidat kanál" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "Url:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Označit položky jako přečtené" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Všechny kanály" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Nastavení" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Spravovat kanály" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "O aplikaci" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Upravit kanál" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Zobrazované jméno:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Skupina:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "od" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Podrobnosti" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Obnovit" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Rozbalit postranní panel" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Svinout postranní panel" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Všechny položky" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Chyba" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Chyba (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Nejsou dostupné žádné nepřečtené záznamy" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Nejsou dostupné žádné záznamy" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Vše" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Nepřečteno" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Otevřít v prohlížeči" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Podrobnosti" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "od %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Přihlášen od: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "naposledy aktualizováno: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 příspěvků, %2 nepřečteno" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Skupina kanálů" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Název:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Popis:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "1 nepřečtený záznam" msgstr[1] "%1 nepřečtené záznamy" msgstr[2] "%1 nepřečtených záznamů" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Smazat tento kanál" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Upravit tento kanál" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Spravovat kanály" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Obnovit všechny kanály" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Spravovat skupiny kanálů" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Importovat kanály…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Exportovat kanály…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Přidat kanál..." #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Zatím nebyly přidány žádné kanály" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Importovat kanály" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Všechny soubory (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "Soubory XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "Soubory OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Exportovat kanály" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Všechny soubory" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Skupiny" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Přidat skupinu..." #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Odstranit" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Nastavit jako výchozí" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Žádné skupiny zatím nebyly vytvořeny" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Přidat skupinu" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Seznam článků" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Smazat po:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Nikdy" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Členy" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Dnů" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Týdnů" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Měsíce" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Článek" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Velikost písma:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Použít výchozí systémový" alligator-23.08.5/po/de/000077500000000000000000000000001457614656200146755ustar00rootroot00000000000000alligator-23.08.5/po/de/alligator.po000066400000000000000000000221011457614656200172070ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # Burkhard Lück , 2020, 2021. # Frederik Schwarzer , 2022, 2023. # msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-03-12 19:45+0100\n" "Last-Translator: Frederik Schwarzer \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: Lokalize 22.12.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Deutsches KDE-Übersetzerteam" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "kde-i18n-de@kde.org" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Standard" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Standard-Nachrichtenquelle" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "Ungültiges XML" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Kein Parser hat das XML akzeptiert" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Fehler beim Einlesen der Nachrichtenquelle" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Anzeige von RSS-Nachrichtenquellen" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "Copyright © 2020-2022 KDE-Gemeinschaft" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Anzeigeprogramm für RSS/Atom-Nachrichtenquellen" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Fügt eine neue Nachrichtenquelle zur Datenbank hinzu." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "Adresse der Nachrichtenquelle" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Nachrichtenquelle hinzufügen" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "Url:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Einträge als gelesen markieren" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Alle Nachrichtenquellen" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Einstellungen" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Nachrichtenquellen verwalten" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Über" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Nachrichtenquelle bearbeiten" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Anzeigename:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Gruppe:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "von" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Details" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Aktualisieren" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Seitenleiste ausklappen" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Seitenleiste einklappen" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Alle Einträge" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Fehler" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Fehler (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Keine ungelesenen Einträge verfügbar" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Keine Einträge verfügbar" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Alle" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Ungelesen" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Im Webbrowser öffnen" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Details" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "von %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Abonniert seit: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "Zuletzt aktualisiert: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 Artikel, %2 ungelesen" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Nachrichtenquellen-Gruppen" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Name:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Beschreibung:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 ungelesener Eintrag" msgstr[1] "%1 ungelesene Einträge" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Diese Nachrichtenquelle löschen" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Diese Nachrichtenquelle bearbeiten" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Nachrichtenquellen verwalten" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Alle Nachrichtenquellen aktualisieren" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Nachrichtenquellen-Gruppen verwalten" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Nachrichtenquellen importieren ..." #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Nachrichtenquellen exportieren ..." #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Nachrichtenquelle hinzufügen ..." #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Noch keine Nachrichtenquellen hinzugefügt" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Nachrichtenquellen importieren" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Alle Dateien (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML-Dateien (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML-Dateien (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Nachrichtenquellen exportieren" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Alle Dateien" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Gruppen" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Gruppe hinzufügen ..." #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Entfernen" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Als Standard verwenden" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Noch keine Gruppen erstellt" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Gruppe hinzufügen" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Artikelliste" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Löschen nach:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Niemals" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Artikel" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Tage" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Wochen" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Monate" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Artikel" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Schriftgröße:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Voreinstellungen des Systems verwenden" #~ msgid "Import Feeds..." #~ msgstr "Nachrichtenquellen importieren ..." #~ msgid "Export Feeds..." #~ msgstr "Nachrichtenquellen exportieren ..." #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Abbrechen" #~ msgid "Configure Groups" #~ msgstr "Gruppen einrichten" #~ msgid "Mark as unread" #~ msgstr "Als ungelesen markieren" #~ msgid "Mark as read" #~ msgstr "Als gelesen markieren" #, fuzzy #~| msgid "All Entries" #~ msgid "Show all entries" #~ msgstr "Alle Einträge" #, fuzzy #~| msgid "No unread entries available" #~ msgid "Show only unread entries" #~ msgstr "Keine ungelesenen Einträge verfügbar" #~ msgid "Edit" #~ msgstr "Bearbeiten" #~ msgid "Feed group" #~ msgstr "Nachrichtenquellen-Gruppe" #~ msgid "Add feed" #~ msgstr "Nachrichtenquelle hinzufügen" #~ msgid "Add new Feed" #~ msgstr "Neue Nachrichtenquelle hinzufügen" #~ msgid "Posts" #~ msgstr "Nachrichten" #~ msgid "Save" #~ msgstr "Speichern" alligator-23.08.5/po/en_GB/000077500000000000000000000000001457614656200152575ustar00rootroot00000000000000alligator-23.08.5/po/en_GB/alligator.po000066400000000000000000000204421457614656200175770ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # # Steve Allewell , 2020, 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-26 23:12+0000\n" "Last-Translator: Steve Allewell \n" "Language-Team: British English \n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 21.12.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Steve Allewell" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "steve.allewell@gmail.com" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Default" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Default Feed Group" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "Invalid XML" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "No parser accepted the XML" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Error while parsing feed" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Feed Reader" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 KDE Community" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS/Atom Feed Reader" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Adds a new feed to database." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "feed URL" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Add Feed" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Mark entries as read" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "All Feeds" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Settings" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Manage Feeds" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "About" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Edit Feed" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Display Name:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Group:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "by" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Details" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Refresh" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Expand sidebar" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Collapse sidebar" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "All Entries" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Error" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Error (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "No unread entries available" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "No entries available" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "All" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Unread" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Open in Browser" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Details" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "by %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Subscribed since: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "last updated: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 posts, %2 unread" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Feed Group" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Name:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Description:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 unread entry" msgstr[1] "%1 unread entries" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Delete this Feed" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Edit this Feed" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Manage Feeds" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Refresh All Feeds" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Manage Feed Groups" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Import Feeds…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Export Feeds…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Add Feed…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "No feeds added yet" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Import Feeds" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "All Files (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML Files (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML Files (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Export Feeds" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "All Files" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Groups" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Add Group…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Remove" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Set as Default" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "No groups created yet" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Add Group" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Article List" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Delete after:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Never" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Articles" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Days" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Weeks" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Months" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Article" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Font size:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Use system default" #~ msgid "Import Feeds..." #~ msgstr "Import Feeds..." #~ msgid "Export Feeds..." #~ msgstr "Export Feeds..." #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Cancel" #~ msgid "Configure Groups" #~ msgstr "Configure Groups" #~ msgid "Mark as unread" #~ msgstr "Mark as unread" #~ msgid "Mark as read" #~ msgstr "Mark as read" #, fuzzy #~| msgid "All Entries" #~ msgid "Show all entries" #~ msgstr "All Entries" #, fuzzy #~| msgid "No unread entries available" #~ msgid "Show only unread entries" #~ msgstr "No unread entries available" #~ msgid "Edit" #~ msgstr "Edit" #~ msgid "Feed group" #~ msgstr "Feed group" #~ msgid "Add feed" #~ msgstr "Add feed" #~ msgid "Add new Feed" #~ msgstr "Add new Feed" #~ msgid "Posts" #~ msgstr "Posts" #~ msgid "Save" #~ msgstr "Save" alligator-23.08.5/po/es/000077500000000000000000000000001457614656200147145ustar00rootroot00000000000000alligator-23.08.5/po/es/alligator.po000066400000000000000000000215701457614656200172370ustar00rootroot00000000000000# Spanish translations for alligator.po package. # Copyright (C) 2020 This file is copyright: # This file is distributed under the same license as the alligator package. # # Automatically generated, 2020. # Eloy Cuadra , 2020, 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-22 20:44+0100\n" "Last-Translator: Eloy Cuadra \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: Lokalize 22.12.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Eloy Cuadra" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "ecuadra@eloihr.net" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Por omisión" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Grupo de emisiones web predeterminado" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "XML no válido" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Ningún analizador ha aceptado el XML" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Ha ocurrido un error al analizar la emisión web" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Lector de emisiones web" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 La comunidad KDE" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Lector de emisiones web RSS/Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Añade una nueva emisión web a la base de datos." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "URL de la emisión web" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Añadir emisión web" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Marcar las entradas como leídas" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Todas las emisiones web" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Preferencias" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Gestión de emisiones web" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Acerca de" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Editar emisión web" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Nombre a mostrar:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Grupo:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "por" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Detalles" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Refrescar" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Expandir la barra lateral" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Contraer la barra lateral" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Todas las entradas" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Error" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Error (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "No hay entradas sin leer" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "No hay entradas disponibles" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Todas" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Sin leer" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Abrir en el navegador" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Detalles" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "por %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Suscrito desde: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "última actualización: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 publicaciones, %2 sin leer" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Grupo de emisiones web" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Nombre:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Descripción:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 entrada sin leer" msgstr[1] "%1 entradas sin leer" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Borrar esta emisión web" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Editar esta emisión web" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Gestión de emisiones web" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Refrescar todas las emisiones web" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Gestión de grupos de emisiones web" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Importar emisiones web..." #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Exportar emisiones web..." #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Añadir emisión web..." #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Todavía no se han añadido emisiones web" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Importar emisiones web" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Todos los archivos (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "Archivos XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "Archivos OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Exportar emisiones web" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Todos los archivos" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Grupos" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Añadir grupo..." #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Eliminar" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Definir como predeterminado" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Todavía no se han creado grupos" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Añadir grupo" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Lista de artículos" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Borrar tras:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Nunca" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Artículos" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Días" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Semanas" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Meses" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Artículo" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Tamaño del tipo de letra:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Usar el predeterminado del sistema" #~ msgid "Import Feeds..." #~ msgstr "Importar emisiones web..." #~ msgid "Export Feeds..." #~ msgstr "Exportar emisiones web..." #~ msgid "OK" #~ msgstr "Aceptar" #~ msgid "Cancel" #~ msgstr "Cancelar" #~ msgid "Configure Groups" #~ msgstr "Configurar grupos" #~ msgid "Mark as unread" #~ msgstr "Marcar como no leído" #~ msgid "Mark as read" #~ msgstr "Marcar como leído" #~ msgid "Show all entries" #~ msgstr "Mostrar todas las entradas" #~ msgid "Show only unread entries" #~ msgstr "Mostrar solo las entradas sin leer" #~ msgid "Edit" #~ msgstr "Editar" #~ msgid "Feed group" #~ msgstr "Grupo de emisiones web" #~ msgid "Add feed" #~ msgstr "Añadir emisión web" #~ msgid "Add new Feed" #~ msgstr "Añadir nueva emisión web" #~ msgid "Posts" #~ msgstr "Publicaciones" #~ msgid "Save" #~ msgstr "Guardar" alligator-23.08.5/po/et/000077500000000000000000000000001457614656200147155ustar00rootroot00000000000000alligator-23.08.5/po/et/alligator.po000066400000000000000000000206541457614656200172420ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # # Marek Laane , 2020. # Mihkel Tõnnov , 2020. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2020-09-28 02:26+0200\n" "Last-Translator: Mihkel Tõnnov \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: Lokalize 20.08.1\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Marek Laane" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "qiilaq69@gmail.com" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Uudistelugeja" #: main.cpp:82 #, fuzzy, kde-format #| msgid "© 2020 KDE Community" msgid "© 2020-2022 KDE Community" msgstr "© 2020: KDE kogukond" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS-voogude uudistelugeja" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "" #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Lisa voog" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "" #: qml/AlligatorGlobalDrawer.qml:88 #, fuzzy, kde-format #| msgid "All Files" msgid "All Feeds" msgstr "Kõik vood" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Seadistused" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Teave" #: qml/EditFeedDialog.qml:15 #, fuzzy, kde-format #| msgid "Add Feed" msgid "Edit Feed" msgstr "Lisa voog" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "autor:" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Üksikasjad" #: qml/EntryListPage.qml:55 #, fuzzy, kde-format #| msgid "Refresh Feed" msgid "Refresh" msgstr "Värskenda voogu" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "" #: qml/EntryListPage.qml:76 #, fuzzy, kde-format #| msgid "All Files" msgid "All Entries" msgstr "Kõik vood" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Tõrge (%1): %2" #: qml/EntryListPage.qml:95 #, fuzzy, kde-format #| msgid "No Entries available." msgid "No unread entries available" msgstr "Kirjeid pole saada." #: qml/EntryListPage.qml:95 #, fuzzy, kde-format #| msgid "No Entries available." msgid "No entries available" msgstr "Kirjeid pole saada." #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Ava veebilehitsejas" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Üksikasjad" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "autor: %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Tellitud alates: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "viimati uuendatud: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 postitust, %2 lugemata" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 lugemata kirje" msgstr[1] "%1 lugemata kirjet" #: qml/FeedListDelegate.qml:30 #, fuzzy, kde-format #| msgid "Delete posts after:" msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Postitused kustutatakse:" #: qml/FeedListDelegate.qml:43 #, fuzzy, kde-format #| msgid "Add Feed" msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Lisa voog" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "" #: qml/FeedListPage.qml:29 #, fuzzy, kde-format #| msgid "Refresh all feeds" msgid "Refresh All Feeds" msgstr "Värskenda kõiki vooge" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "" #: qml/FeedListPage.qml:40 #, fuzzy, kde-format #| msgid "Import Feeds" msgid "Import Feeds…" msgstr "Uudistevoogude import" #: qml/FeedListPage.qml:45 #, fuzzy, kde-format #| msgid "Export Feeds" msgid "Export Feeds…" msgstr "Uudistevoogude eksport" #: qml/FeedListPage.qml:69 #, fuzzy, kde-format #| msgid "Add Feed" msgid "Add Feed…" msgstr "Lisa voog" #: qml/FeedListPage.qml:83 #, fuzzy, kde-format #| msgid "No Feeds added yet." msgid "No feeds added yet" msgstr "Ühtegi voogu pole veel lisatud." #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Uudistevoogude import" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Kõik failid (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML-failid (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML-failid (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Uudistevoogude eksport" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Kõik vood" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "" #: qml/GroupsListPage.qml:72 #, fuzzy, kde-format #| msgid "No Feeds added yet." msgid "No groups created yet" msgstr "Ühtegi voogu pole veel lisatud." #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "" #: qml/SettingsPage.qml:25 #, fuzzy, kde-format #| msgid "Delete posts after:" msgid "Delete after:" msgstr "Postitused kustutatakse:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Mitte kunagi" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "päeva järel" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "nädala järel" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "kuu järel" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "" #~ msgid "Import Feeds..." #~ msgstr "Impordi uudistevood ..." #~ msgid "Export Feeds..." #~ msgstr "Ekspordi uudistevood ..." #, fuzzy #~| msgid "All Files" #~ msgid "Show all entries" #~ msgstr "Kõik vood" #, fuzzy #~| msgid "No Entries available." #~ msgid "Show only unread entries" #~ msgstr "Kirjeid pole saada." #~ msgid "Add feed" #~ msgstr "Lisa voog" #~ msgid "Add new Feed" #~ msgstr "Uue voo lisamine" #~ msgid "Posts" #~ msgstr "Postitused" #~ msgid "Save" #~ msgstr "Salvesta" #~ msgid "Url to add to the subscriptions" #~ msgstr "Uue tellimuse URL" #~ msgid "Add" #~ msgstr "Lisa" #~ msgid "Bookmark" #~ msgstr "Järjehoidja" alligator-23.08.5/po/eu/000077500000000000000000000000001457614656200147165ustar00rootroot00000000000000alligator-23.08.5/po/eu/alligator.po000066400000000000000000000214371457614656200172430ustar00rootroot00000000000000# Translation for alligator.po to Euskara/Basque (eu). # Copyright (C) 2020-2023 This file is copyright: # This file is distributed under the same license as the alligator package. # KDE euskaratzeko proiektuko arduraduna . # # Translators: # Iñigo Salvador Azurmendi , 2020, 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-04-13 22:53+0200\n" "Last-Translator: Iñigo Salvador Azurmendi \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: Lokalize 22.12.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Iñigo Salvador Azurmendi" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "xalba@ni.eus" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Lehenetsia" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Jario-talde lehenetsia" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "XML baliogabea" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Ez dago XMLa onartu duen aztertzaile sintaktikorik" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Errorea jarioaren sintaxia aztertzean" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Web-jario irakurlea" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 KDE komunitatea" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS/Atom web-jario irakurlea" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Datu-basera jario berria gehitzen du." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "Jarioaren URL" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Gehitu jarioa" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Markatu sarrerak irakurritako gisa" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Jario denak" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Ezarpenak" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Kudeatu jarioak" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Honi buruz" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Editatu jarioa" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Azaldu beharreko izena:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Taldea:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "nork" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Zehaztasunak" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Freskatu" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Zabaldu alboko-barra" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Tolestu alboko-barra" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Sarrera guztiak" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Errorea" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Errorea (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Ez dago irakurri gabeko sarrerarik" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Ez dago sarrera erabilgarririk" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Dena" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Irakurri gabea" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Ireki arakatzailean" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Zehaztasunak" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "%1(e)k egina" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Noiztik harpidetuta: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "azken eguneratzea: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 posta, %2 irakurri gabe" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Jario-taldea" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Izena:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Azalpena:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "irakurri gabeko sarrera %1" msgstr[1] "irakurri gabeko %1 sarrera" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Ezabatu web-jario hori" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Editatu web-jario hori" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Kudeatu jarioak" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Freskatu jario guztiak" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Kudeatu jario-taldeak" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Inportatu jarioak..." #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Esportatu jarioak..." #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Gehitu jarioa..." #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Oraindik ez da jariorik gehitu" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Inportatu jarioak" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Fitxategi guztiak (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML fitxategiak (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML fitxategiak (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Esportatu jarioak" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Fitxategi guztiak" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Taldeak" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Gehitu taldea..." #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Kendu" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Ezarri lehenetsi gisa" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Oraindik ez da talderik sortu" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Gehitu taldea" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Artikuluen zerrenda" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Ezabatu igarotakoan:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Inoiz ez" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Artikuluak" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Egun" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Aste" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Hilabete" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Artikulua" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Letra-tamaina:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Erabili sisteman lehenetsitakoa" #~ msgid "Import Feeds..." #~ msgstr "Inportatu jarioak..." #~ msgid "Export Feeds..." #~ msgstr "Esportatu jarioak..." #~ msgid "OK" #~ msgstr "Ados" #~ msgid "Cancel" #~ msgstr "Utzi" #~ msgid "Configure Groups" #~ msgstr "Konfiguratu taldeak" #~ msgid "Mark as unread" #~ msgstr "Markatu irakurri gabeko gisa" #~ msgid "Mark as read" #~ msgstr "Markatu irakurritako gisa" #~ msgid "Show all entries" #~ msgstr "Erakutsi sarrera guztiak" #~ msgid "Show only unread entries" #~ msgstr "Erakutsi bakarrik irakurri gabeko sarrerak" #~ msgid "Edit" #~ msgstr "Editatu" #~ msgid "Feed group" #~ msgstr "Jario-taldea" #~ msgid "Add feed" #~ msgstr "Gehitu web-jarioa" #~ msgid "Add new Feed" #~ msgstr "Gehitu web-jario berria" #~ msgid "Posts" #~ msgstr "Postak" #~ msgid "Save" #~ msgstr "Gorde" alligator-23.08.5/po/fi/000077500000000000000000000000001457614656200147035ustar00rootroot00000000000000alligator-23.08.5/po/fi/alligator.po000066400000000000000000000207721457614656200172310ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # Tommi Nieminen , 2020, 2021, 2022, 2023. # msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-03-12 15:13+0200\n" "Last-Translator: Tommi Nieminen \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: Lokalize 22.12.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Tommi Nieminen" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "translator@legisign.org" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Oletus" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Oletussyöteryhmä" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "Virheellistä XML:ää" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Jäsentimet eivät hyväksyneet XML:ää" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Virhe syötettä jäsennettäessä" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Syötteenlukija" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020–2022 KDE-yhteisö" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS/Atom-syötelukija" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Lisää tietokantaan uuden syötteen." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "syötteen verkko-osoite" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Lisää syöte" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "Verkko-osoite:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Merkitse kohteet luetuiksi" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Kaikki syötteet" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Asetukset" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Hallinnoi syötteitä" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Tietoa" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Muokkaa syötettä" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Näyttönimi:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Ryhmä:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "tekijältä" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Tiedot" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Virkistä" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Laajenna sivupaneeli" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Supista sivupaneeli" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Kaikki kohteet" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Virhe" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Virhe (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Ei kohteita lukematta" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Ei kohteita saatavilla" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Kaikki" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Lukematta" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Avaa selaimeen" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 – yksityiskohdat" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "tekijältä %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Tilattu: %1 alkaen" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "viimeksi päivitetty: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 julkaisua, %2 lukematta" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Syöteryhmä" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Nimi:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Kuvaus:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "Lukematta %1 tietue" msgstr[1] "Lukematta %1 tietuetta" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Poista tämä syöte" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Muokkaa tätä syötettä" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Hallinnoi syötteitä" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Virkistä kaikki syötteet" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Hallinnoi syöteryhmiä" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Tuo syötteitä…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Vie syötteitä…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Lisää syöte…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Ei vielä lisättyjä syötteitä" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Tuo syötteitä" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Kaikki tiedostot (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML-tiedostot (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML-tiedostot (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Vie syötteitä" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Kaikki tiedostot" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Ryhmät" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Lisää ryhmä…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Poista" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Aseta oletukseksi" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Ryhmiä ei toistaiseksi ole" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Lisää ryhmä" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Artikkeliluettelo" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Poista ajassa:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Ei koskaan" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Artikkelit" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "päivää" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "viikkoa" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "kuukautta" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Artikkeli" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Fonttikoko:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Käytä järjestelmän oletusta" #~ msgid "Import Feeds..." #~ msgstr "Tuo syötteitä…" #~ msgid "Export Feeds..." #~ msgstr "Vie syötteitä…" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Peru" #~ msgid "Configure Groups" #~ msgstr "Ryhmäasetukset" #, fuzzy #~| msgid "All Entries" #~ msgid "Show all entries" #~ msgstr "Kaikki kohteet" #, fuzzy #~| msgid "No Entries available" #~ msgid "Show only unread entries" #~ msgstr "Ei tietueita" #~ msgid "Edit" #~ msgstr "Muokkaa" #~ msgid "Feed group" #~ msgstr "Syöteryhmä" #~ msgid "Add feed" #~ msgstr "Lisää syöte" #~ msgid "Add new Feed" #~ msgstr "Lisää uusi syöte" #~ msgid "Posts" #~ msgstr "Viestit" #~ msgid "Save" #~ msgstr "Tallenna" alligator-23.08.5/po/fr/000077500000000000000000000000001457614656200147145ustar00rootroot00000000000000alligator-23.08.5/po/fr/alligator.po000066400000000000000000000220471457614656200172370ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2020, 2021, 2022, 2023 Xavier Besnard # Xavier Besnard , 2023. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-22 21:20+0100\n" "Last-Translator: Xavier BESNARD \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 23.08.1\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Xavier Besnard" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "Xavier.besnard@neuf.fr" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Par défaut" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Groupe de fil d'actualité par défaut" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "Données XML non valables" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Aucun analyseur n'a accepté les données « XML »" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Erreur durant l'analyse du fil d'actualités" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Lecteur de fil d'actualité" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020 - 2022 Communauté de KDE" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Lecteur de fil d'actualités (RSS)" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Ajoute un nouveau fil de discussions à la base de données." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "URL du fil de discussions" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Ajouter un flux" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL :" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Marquer les entrées comme lues" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Tous les fils d'actualité" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Configuration" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Gérer les fils d'actualité" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "A propos" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Modifier un fil d'actualité" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Nom d'affichage :" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Groupe :" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "par" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Détails" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Rafraîchir" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Développer la barre latérale" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Réduire la barre latérale" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Toutes les entrées" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Erreur" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Erreur (%1) : %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Aucune entrée non lue disponible." #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Aucune entrée disponible." #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Tout" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Non lu" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Ouvrir dans un navigateur" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Détails" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "par %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Abonné depuis : %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "Mis à jour depuis : %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 messages, %2 non lus" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Groupes de fils d'actualités" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Nom :" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Description :" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "Entrée %1 non lue" msgstr[1] "Entrées %1 non lues" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Supprimer ce fil d'actualités" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Modifier ce fil d'actualité" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Gérer les fils d'actualité" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Actualiser tous les fils d'actualités" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Gérer les groupes de fils d'actualité" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Gérer des fils d'actualité" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Exporter des fils d'actualité" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Ajouter un fil d'actualités..." #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Aucun fil d'actualité ajouté pour l'instant." #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Importer des flux" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Tous les fichiers (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "Fichiers « XML » (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "Fichiers « OPML » (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Exporter des flux" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Tous les fichiers" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Groupes" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Ajouter un groupe..." #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Supprimer" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Définir par défaut" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Aucun fil d'actualité créé pour l'instant." #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Ajouter un groupe" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Liste des articles" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Supprimer après :" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Jamais" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Articles" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Jours" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Semaines" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Mois" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Article" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Taille de la police :" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Utiliser la valeur par défaut du système" #~ msgid "Import Feeds..." #~ msgstr "Importer des flux..." #~ msgid "Export Feeds..." #~ msgstr "Exporter des flux..." #~ msgid "OK" #~ msgstr "Ok" #~ msgid "Cancel" #~ msgstr "Annuler" #~ msgid "Configure Groups" #~ msgstr "Configurer les groupes" #~ msgid "Mark as unread" #~ msgstr "Marquer comme non lu" #~ msgid "Mark as read" #~ msgstr "Marquer comme lu" #~ msgid "Show all entries" #~ msgstr "Afficher toutes les entrées" #~ msgid "Show only unread entries" #~ msgstr "N'afficher que les entrées non lues." #~ msgid "Edit" #~ msgstr "Modifier" #~ msgid "Feed group" #~ msgstr "Groupe de fils d'actualité" #~ msgid "Add feed" #~ msgstr "Ajouter un fil d'actualité" #~ msgid "Add new Feed" #~ msgstr "Ajouter un fil d'actualité" #~ msgid "Posts" #~ msgstr "Messages" #~ msgid "Save" #~ msgstr "Enregistrer" #~ msgid "Url to add to the subscriptions" #~ msgstr "URL à ajouter aux abonnements" #~ msgid "Add" #~ msgstr "Ajouter" alligator-23.08.5/po/gl/000077500000000000000000000000001457614656200147075ustar00rootroot00000000000000alligator-23.08.5/po/gl/alligator.po000066400000000000000000000174711457614656200172370ustar00rootroot00000000000000# Copyright (C) 2023 This file is copyright: # This file is distributed under the same license as the alligator package. # SPDX-FileCopyrightText: 2023 Adrián Chaves (Gallaecio) # msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-10-07 12:22+0200\n" "Last-Translator: Adrián Chaves (Gallaecio) \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: Lokalize 23.08.1\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Adrian Chaves (Gallaecio)" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "adrian@chaves.io" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Predeterminado" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Grupo de fontes predeterminado" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "XML incorrecto" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Ningún procesador aceptou o XML." #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Produciuse un erro ao procesar a fonte." #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Lector de novas" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 Comunidade KDE" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Lector de novas RSS e Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Engade unha nova fonte á base de datos." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "URL da fonte" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Engadir unha fonte" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Marcar as entradas como lidas" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Todas as fontes" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Configuración" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Xestionar as fontes" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Sobre" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Editar a fonte" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Nome visual:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Grupo:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "de" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Detalles" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Actualizar" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Expandir barra lateral" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Pregar a barra lateral" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Todas as entradas" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Erro" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Erro (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Non hai entradas sen ler." #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Non hai entradas." #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Todas" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Sen ler" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Abrir no navegador" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 — Detalles" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "de %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Data de subscrición: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "Última actualización: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 publicacións, %2 sen ler." #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Grupo de fontes" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Nome:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Descrición:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 entrada sen ler" msgstr[1] "%1 entradas sen ler" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Eliminar a fonte" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Editar a fonte" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Xestionar as fontes" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Actualizar as fontes" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Xestionar os grupos de fontes" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Importar fontes…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Exportar fontes…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Engadir unha fonte…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Aínda non se engadiron fontes." #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Importar fontes" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Todos os ficheiros (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "Ficheiros XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "Ficheiros OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Exportar fontes" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Todos os ficheiros" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Grupos" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Engadir un grupo…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Retirar" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Facer predeterminado" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Aínda non se crearon grupos." #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Engadir un grupo" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Lista de artigos" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Eliminar despois de:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Nunca" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Artigos" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Días" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Semanas" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Meses" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Artigo" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Tamaño do tipo de letra:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Usar o predeterminado do sistema" alligator-23.08.5/po/hu/000077500000000000000000000000001457614656200147215ustar00rootroot00000000000000alligator-23.08.5/po/hu/alligator.po000066400000000000000000000220251457614656200172400ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # # Kristóf Kiszel , 2020, 2021. # Kristof Kiszel , 2021, 2022. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2022-02-07 14:08+0100\n" "Last-Translator: Kristof Kiszel \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 21.07.70\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Kiszel Kristóf" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "ulysses@fsf.hu" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Alapértelmezett" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Alapértelmezett hírcsoport" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Hírolvasó" #: main.cpp:82 #, fuzzy, kde-format #| msgid "© 2020 KDE Community" msgid "© 2020-2022 KDE Community" msgstr "© A KDE közösség, 2020." #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS/Atom hírolvasó" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Új hírforrás hozzáadása az adatbázishoz." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "Csatorna URL" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Hírcsatorna hozzáadása" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL-cím:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Minden csatorna" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Beállítások" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Névjegy" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Csatorna szerkesztése" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Megjelenítendő név:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Csoport:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr ", szerző:" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Részletek" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Frissítés" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Minden bejegyzés" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Hiba (%1): %2" #: qml/EntryListPage.qml:95 #, fuzzy, kde-format #| msgid "No Entries available" msgid "No unread entries available" msgstr "Nincsenek bejegyzések" #: qml/EntryListPage.qml:95 #, fuzzy, kde-format #| msgid "No Entries available" msgid "No entries available" msgstr "Nincsenek bejegyzések" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "" #: qml/EntryListPage.qml:140 #, fuzzy, kde-format #| msgid "Only unread" msgid "Unread" msgstr "Csak olvasatlanok" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Megnyitás böngészőben" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - részletek" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr ", szerző: %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Feliratkozás kezdete: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "utolsó frissítés: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 bejegyzés, %2 olvasatlan" #: qml/FeedGroupDialog.qml:23 #, fuzzy, kde-format #| msgid "Feed Groups" msgid "Feed Group" msgstr "Csatornacsoportok" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Név:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Leírás:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 olvasatlan bejegyzés" msgstr[1] "%1 olvasatlan bejegyzés" #: qml/FeedListDelegate.qml:30 #, fuzzy, kde-format #| msgid "Delete after:" msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Törlés ennyi idő után:" #: qml/FeedListDelegate.qml:43 #, fuzzy, kde-format #| msgid "Edit Feed" msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Csatorna szerkesztése" #: qml/FeedListPage.qml:18 #, fuzzy, kde-format #| msgid "Feed Groups" msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Csatornacsoportok" #: qml/FeedListPage.qml:29 #, fuzzy, kde-format #| msgid "Refresh all feeds" msgid "Refresh All Feeds" msgstr "Összes frissítése" #: qml/FeedListPage.qml:35 #, fuzzy, kde-format #| msgid "Feed Groups" msgid "Manage Feed Groups" msgstr "Csatornacsoportok" #: qml/FeedListPage.qml:40 #, fuzzy, kde-format #| msgid "Import Feeds" msgid "Import Feeds…" msgstr "Hírcsatornák importálása" #: qml/FeedListPage.qml:45 #, fuzzy, kde-format #| msgid "Export Feeds" msgid "Export Feeds…" msgstr "Hírcsatornák exportálása" #: qml/FeedListPage.qml:69 #, fuzzy, kde-format #| msgid "Add Feed" msgid "Add Feed…" msgstr "Hírcsatorna hozzáadása" #: qml/FeedListPage.qml:83 #, fuzzy, kde-format #| msgid "No Feeds added yet" msgid "No feeds added yet" msgstr "Nincsenek hírcsatornák" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Hírcsatornák importálása" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Minden fájl (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML-fájlok (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML-fájlok (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Hírcsatornák exportálása" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Minden fájl" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Csoportok" #: qml/GroupsListPage.qml:24 #, fuzzy, kde-format #| msgid "Add Group" msgid "Add Group…" msgstr "Csoport hozzáadása" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Eltávolítás" #: qml/GroupsListPage.qml:63 #, fuzzy, kde-format #| msgid "Set as default" msgid "Set as Default" msgstr "Beállítás alapértelmezettként" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Nincsenek még csoportok" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Csoport hozzáadása" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Cikklista" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Törlés ennyi idő után:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Soha" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Cikkek" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "nap után" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "hét után" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "hónap után" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Cikk" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Betűméret:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Rendszer alapértelmezése" #~ msgid "Import Feeds..." #~ msgstr "Hírcsatornák importálása…" #~ msgid "Export Feeds..." #~ msgstr "Hírcsatorna exportálása…" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Mégsem" #~ msgid "Configure Groups" #~ msgstr "Csoportok beállítása" #, fuzzy #~| msgid "All Entries" #~ msgid "Show all entries" #~ msgstr "Minden bejegyzés" #, fuzzy #~| msgid "No Entries available" #~ msgid "Show only unread entries" #~ msgstr "Nincsenek bejegyzések" #~ msgid "Edit" #~ msgstr "Szerkesztés" #~ msgid "Feed group" #~ msgstr "Hírcsoport" #~ msgid "Add feed" #~ msgstr "Hírcsatorna hozzáadása" #~ msgid "Add new Feed" #~ msgstr "Új hírcsatorna" #~ msgid "Posts" #~ msgstr "Bejegyzések" #~ msgid "Save" #~ msgstr "Mentés" alligator-23.08.5/po/ia/000077500000000000000000000000001457614656200146765ustar00rootroot00000000000000alligator-23.08.5/po/ia/alligator.po000066400000000000000000000212361457614656200172200ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # # Giovanni Sora , 2020, 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-24 22:26+0100\n" "Last-Translator: giovanni \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: Lokalize 22.12.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Giovanni Sora" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "g.sora@tiscali.it" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Predefinite" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Gruppo predefinite de syndication" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "XML invalide" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Necun analysator acceptava le XML" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Error durante que analysava syndication" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Lector de syndication" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 Communitate de KDE" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Lector de syndication RSS/Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Ade un nove syndication al base de datos" #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "Url de syndication" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Adde syndication" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "Url:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Marca entratas como legite" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Omne syndicationes" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Preferentias" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Gere syndicationes" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "A proposito" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Modifica syndication" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Nomine de monstrar:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Gruppo:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "per" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Detalios" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Refresca" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Expande barra lateral" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Plica barra lateral" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Omne entratas" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Error" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Error (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Necun entratas non legite disponibile." #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Necun entratas disponibile." #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Toto" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Non Legite" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Aperi con navigator" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Detalios" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "per %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Subscribite depost : %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "ultime actualisation: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 posts (messages public), %2 non legite" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Gruppo de syndication" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Nomine:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Description:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 entrata non legite" msgstr[1] "%1 entratas non legite" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Dele iste Syndication" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Modifica iste syndication" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Gere syndicationes" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Refresca omne syndicationes" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Gere Gruppos de syndication" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Importa syndicationes..." #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Exporta syndicationes..." #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Adde syndication ..." #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Necun syndication addite totevia." #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Importa syndicationes..." #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Omne files (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "Files XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "Files OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Exporta syndicationes..." #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Omne files" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Gruppos" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Adde Gruppo..." #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Remove" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Marca como Predefinite" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Necun gruppo create totevia" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Adde Gruppo" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Lista de articulo" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Dele postea:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Jammais" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Articulos" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Dies" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Septimanas" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Menses" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Articulo" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Dimension de Font:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Usa le prdefinite de systema" #~ msgid "Import Feeds..." #~ msgstr "Importa syndicationes..." #~ msgid "Export Feeds..." #~ msgstr "Exporta syndicationes..." #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Cancella" #~ msgid "Configure Groups" #~ msgstr "Configura gruppos" #~ msgid "Mark as unread" #~ msgstr "Marca como non legite" #~ msgid "Mark as read" #~ msgstr "Marca como legite" #~ msgid "Show all entries" #~ msgstr "Monstra omne entratas" #~ msgid "Show only unread entries" #~ msgstr "Monstra solmente entratas non legite" #~ msgid "Edit" #~ msgstr "Modifica" #~ msgid "Feed group" #~ msgstr "Gruppo de syndication" #~ msgid "Add feed" #~ msgstr "Adde syndication" #~ msgid "Add new Feed" #~ msgstr "Adde nove syndication" #~ msgid "Posts" #~ msgstr "Posts" #~ msgid "Save" #~ msgstr "Salveguarda" alligator-23.08.5/po/it/000077500000000000000000000000001457614656200147215ustar00rootroot00000000000000alligator-23.08.5/po/it/alligator.po000066400000000000000000000211301457614656200172340ustar00rootroot00000000000000# Copyright (C) 2023 This file is copyright: # This file is distributed under the same license as the alligator package. # SPDX-FileCopyrightText: 2020, 2021, 2022, 2023 Vincenzo Reale # msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-24 19:11+0100\n" "Last-Translator: Vincenzo Reale \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: Lokalize 23.08.1\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Vincenzo Reale" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "smart2128vr@gmail.com" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Predefinito" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Gruppo di fonti predefinito" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "XML non valido" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Nessun parser ha accettato l'XML" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Errore durante l'analisi della fonte" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Lettore di fonti" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 Comunità KDE" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Lettore di fonti RSS/Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Aggiunge una nuova fonte alla banca dati." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "URL della fonte" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Aggiungi fonte" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "Url:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Marca le voci come lette" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Tutte le fonti" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Impostazioni" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Gestisci le fonti" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Informazioni" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Modifica la fonte" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Nome visualizzato:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Gruppo:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "di" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Dettagli" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Aggiorna" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Espandi la barra laterale" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Contrai la barra laterale" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Tutte le voci" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Errore" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Errore (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Nessuna voce non letta disponibile" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Nessuna voce disponibile" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Tutti" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Non letti" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Apri nel browser" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Dettagli" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "di %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Sottoscritta da: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "ultimo aggiornamento: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 messaggi, %2 non letti" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Gruppo di fonti" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Nome:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Descrizione:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 voce non letta" msgstr[1] "%1 voci non lette" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Elimina questa fonte" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Modifica questa fonte" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Gestisci le fonti" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Aggiorna tutte le fonti" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Gestisci i gruppi di fonti" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Importa fonti…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Esporta fonti…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Aggiungi fonte…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Ancora nessuna fonte aggiunta" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Importa fonti" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Tutti i file (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "File XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "File OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Esporta fonti" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Tutti i file" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Gruppi" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Aggiungi gruppo…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Rimuovi" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Imposta come predefinito" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Ancora nessun gruppo creato" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Aggiungi gruppo" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Elenco degli articoli" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Elimina dopo:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Mai" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Articoli" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Giorni" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Settimane" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Mesi" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Articolo" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Dimensione dei caratteri:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Usare i valori predefiniti di sistema" #~ msgid "Import Feeds..." #~ msgstr "Importa fonti..." #~ msgid "Export Feeds..." #~ msgstr "Esporta fonti..." #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Annulla" #~ msgid "Configure Groups" #~ msgstr "Configura gruppi" #~ msgid "Mark as unread" #~ msgstr "Marca come non letto" #~ msgid "Mark as read" #~ msgstr "Marca come letto" #~ msgid "Show all entries" #~ msgstr "Mostra tutte le voci" #~ msgid "Show only unread entries" #~ msgstr "Mostra solo le voci non lette" #~ msgid "Edit" #~ msgstr "Modifica" #~ msgid "Feed group" #~ msgstr "Gruppo di fonti" #~ msgid "Add feed" #~ msgstr "Aggiungi fonte" #~ msgid "Add new Feed" #~ msgstr "Aggiungi nuova fonte" #~ msgid "Posts" #~ msgstr "Messaggi" #~ msgid "Save" #~ msgstr "Salva" #~ msgid "Add" #~ msgstr "Aggiungi" alligator-23.08.5/po/ja/000077500000000000000000000000001457614656200146775ustar00rootroot00000000000000alligator-23.08.5/po/ja/alligator.po000066400000000000000000000145411457614656200172220ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2020-04-23 11:45-0700\n" "Last-Translator: Japanese KDE translation team \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-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "" #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "" alligator-23.08.5/po/ka/000077500000000000000000000000001457614656200147005ustar00rootroot00000000000000alligator-23.08.5/po/ka/alligator.po000066400000000000000000000251461457614656200172260ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-23 07:03+0100\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.2.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Temuri Doghonadze" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "Temuri.doghonadze@gmail.com" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "ნაგულისხმები" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "ნაგულისხმებილენტის ჯგუფი" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "არასწორი XML" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "XML-ის დამმუშავებლის გარეშე" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "შეცდომა ლენტის დამუშავებისას" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "ლენტის მკითხველი" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 KDE-ის საზოგადოება. ყველა უფლება დაცულია" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS/Atom ლენტის მკითხველი" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "ბაზაში ახალი ლენტის ჩამატება." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "ლენტის URL" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "ლენტის დამატება" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "ჩანაწერების წაკითხულად მონიშვნა" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "ყველა ლენტა" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "მორგება" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "ლენტების მართვა" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "შესახებ" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "ლენტის ჩასწორება" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "ნაჩვენები სახელი:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "ჯგუფი:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "ავტორი" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "დეტალები" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "განახლება" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "გვერდითი ზოლის გაფართოება" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "გვერდითი ზოლის ჩაკეცვა" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "ყველა ჩანაწერი" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "შეცდომა" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "შეცდომა (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "წაუკითხავი ჩანაწერების გარეშე" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "ჩანაწერების გარეშე" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "ყველა" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "წაუკითხავი" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "ბრაუზერში გახსნა" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - დეტალები" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "%1-სგან" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "გამოწერის საწყისი დრო: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "უკანასკნელი განახლება: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 პოსტი, %2 წაუკითხავი" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "ლენტის ჯგუფი" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "სახელი:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "აღწერა:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 წაუკითხავი ჩანაწერი" msgstr[1] "%1 წაუკითხავი ჩანაწერი" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "ამ ლენტის წაშლა" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "ამ ლენტის ჩასწორება" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "ლენტების მართვა" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "ყველა ლენტის განახლება" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "ლენტის ჯგუფების მართვა" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "ლენტების შემოტანა…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "ლენტების გატანა…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "ლენტის დამატება…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "ლენტები ჯერ დამატებული არაა" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "ლენტების შემოტანა" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "ყველა ფაილი (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML ფაილები (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML ფაილები (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "ლენტების გატანა" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "ყველა ფაილი" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "ჯგუფები" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "ჯგუფის დამატება…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "წაშლა" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "ნაგულისხმებად დაყენება" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "ჯგუფები ჯერ არ შეგიქმნიათ" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "ჯგუფის დამატება" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "სტატიების სია" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "წაშლა მითითებულ დროის შემდეგ:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "არასდროს" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "სტატიები" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "დღე" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "კვირა" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "თვე" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "სტატია" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "ფონტის ზომა:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "სისტემის ნაგულისხმების გამოყენება" #~ msgid "Import Feeds..." #~ msgstr "ლენტების შემოტანა…" #~ msgid "Export Feeds..." #~ msgstr "ლენტების გატანა…" #~ msgid "OK" #~ msgstr "დიახ" #~ msgid "Cancel" #~ msgstr "_გაუქმება" #~ msgid "Configure Groups" #~ msgstr "ჯგუფების მორგება" #~ msgid "Mark as unread" #~ msgstr "მონიშნე როგორც წაუკითხავი" #~ msgid "Mark as read" #~ msgstr "მონიშნე როგორც წაკითხული" #~ msgid "Show all entries" #~ msgstr "ყველა ჩანაწერის ჩვენება" #~ msgid "Show only unread entries" #~ msgstr "მხოლოდ წაუკითხავი ჩანაწერების ჩვენება" #~ msgid "Edit" #~ msgstr "ჩასწორება" alligator-23.08.5/po/ko/000077500000000000000000000000001457614656200147165ustar00rootroot00000000000000alligator-23.08.5/po/ko/alligator.po000066400000000000000000000211161457614656200172350ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # Shinjo Park , 2020, 2021, 2022, 2023. # msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-03-01 00:42+0100\n" "Last-Translator: Shinjo Park \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: Lokalize 22.12.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "박신조" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "kde@peremen.name" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "기본값" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "기본 피드 그룹" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "잘못된 XML" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "XML 파서에서 거부됨" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "피드 처리 중 오류 발생" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "피드 리더" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 KDE Community" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS/Atom 피드 리더" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "데이터베이스에 새 피드를 추가합니다." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "피드 URL" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "피드 추가" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "항목을 읽은 상태로 표시" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "모든 피드" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "설정" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "피드 관리" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "정보" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "피드 편집" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "표시 이름:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "그룹:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "작성:" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "자세히" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "새로 고침" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "사이드바 펴기" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "사이드바 접기" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "모든 항목" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "오류" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "오류 (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "읽지 않은 항목 없음" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "항목 없음" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "모두" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "읽지 않음" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "브라우저로 열기" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - 자세한 정보" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "작성: %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "구독 시작: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "마지막 업데이트: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "글 %1개, %2개 읽지 않음" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "피드 그룹" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "이름:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "설명:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "읽지 않은 항목 %1개" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "이 피드 삭제" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "이 피드 편집" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "피드 관리" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "모든 피드 새로 고침" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "피드 그룹 관리" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "피드 가져오기…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "피드 내보내기…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "피드 추가…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "추가한 피드 없음" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "피드 가져오기" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "모든 파일 (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML 파일 (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML 파일 (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "피드 내보내기" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "모든 파일" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "그룹" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "그룹 추가…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "삭제" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "기본값으로 설정" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "생성한 그룹이 없음" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "그룹 추가" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "글 목록" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "다음 이후 글 삭제:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "하지 않음" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "글" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "일" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "주" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "개월" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "글" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "글꼴 크기:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "시스템 기본값 사용" #~ msgid "Import Feeds..." #~ msgstr "피드 가져오기..." #~ msgid "Export Feeds..." #~ msgstr "피드 내보내기..." #~ msgid "OK" #~ msgstr "확인" #~ msgid "Cancel" #~ msgstr "취소" #~ msgid "Configure Groups" #~ msgstr "그룹 설정" #~ msgid "Mark as unread" #~ msgstr "읽지 않은 상태로 표시" #~ msgid "Mark as read" #~ msgstr "읽은 상태로 표시" #, fuzzy #~| msgid "All Entries" #~ msgid "Show all entries" #~ msgstr "모든 항목" #, fuzzy #~| msgid "No unread entries available" #~ msgid "Show only unread entries" #~ msgstr "읽지 않은 항목 없음" #~ msgid "Edit" #~ msgstr "편집" #~ msgid "Feed group" #~ msgstr "피드 그룹" #~ msgid "Add feed" #~ msgstr "피드 추가" #~ msgid "Add new Feed" #~ msgstr "새 피드 추가" #~ msgid "Posts" #~ msgstr "개" #~ msgid "Save" #~ msgstr "저장" #~ msgid "Add" #~ msgstr "추가" #~ msgid "Bookmark" #~ msgstr "책갈피" alligator-23.08.5/po/lt/000077500000000000000000000000001457614656200147245ustar00rootroot00000000000000alligator-23.08.5/po/lt/alligator.po000066400000000000000000000151111457614656200172410ustar00rootroot00000000000000# Lithuanian translations for alligator package. # Copyright (C) 2020 This file is copyright: # This file is distributed under the same license as the alligator package. # Automatically generated, 2020. # msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2020-10-23 02:33+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10>=2 && (n%100<10 || n" "%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "" #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "" alligator-23.08.5/po/nl/000077500000000000000000000000001457614656200147165ustar00rootroot00000000000000alligator-23.08.5/po/nl/alligator.po000066400000000000000000000211501457614656200172330ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # # Freek de Kruijf , 2020, 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-22 14:17+0100\n" "Last-Translator: Freek de Kruijf \n" "Language-Team: \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 22.12.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Freek de Kruijf - 2020-2023" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "freekdekruijf@kde.nl" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Standaard" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Standaard feed-groep" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "Ongeldige XML" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Geen ontleder accepteerde de XML" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Fout bij het ontleden van de feed" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Feedlezer" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 KDE gemeenschap" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS/Atom-feedlezer" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Voegt een nieuwe feed toe aan de database." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "Feed-URL" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Feed toevoegen" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Items markeren als gelezen" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Alle feeds" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Instellingen" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Feeds beheren" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Info over" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Feed bewerken" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Schermnaam:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Groep:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "door" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Details" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Vernieuwen" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Zijbalk uitvouwen" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Zijbalk invouwen" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Alle items" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Fout" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Fout (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Geen ongelezen items beschikbaar" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Geen items beschikbaar" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Alles" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Ongelezen" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "In browser openen" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Details" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "door %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Ingeschreven sinds: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "laatst bijgewerkt: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 posts, %2 ongelezen" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Feed-groep" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Naam:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Beschrijving:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 ongelezen item" msgstr[1] "%1 ongelezen items" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Deze feed verwijderen" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Deze feed bewerken" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Feeds beheren" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Alle feeds vernieuwen" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Feed-groepen beheren" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Feeds importeren…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Feeds exporteren…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Feed toevoegen…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Nog geen feeds toegevoegd" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Feeds importeren" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Alle bestanden (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML-bestanden (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML-bestanden (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Feeds exporteren" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Alle bestanden" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Groepen" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Groep toevoegen…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Verwijderen" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Als standaard instellen" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Nog geen groepen aangemaakt" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Groep toevoegen" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Artikellijst" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Verwijderen na:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Nooit" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Artikelen" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Dagen" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Weken" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Maanden" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Artikel" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Tekengrootte:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Systeemstandaard gebruiken" #~ msgid "Import Feeds..." #~ msgstr "Feeds importeren..." #~ msgid "Export Feeds..." #~ msgstr "Feeds exporteren..." #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Annuleren" #~ msgid "Configure Groups" #~ msgstr "Groepen configureren" #~ msgid "Mark as unread" #~ msgstr "Markeren als ongelezen" #~ msgid "Mark as read" #~ msgstr "Markeren als gelezen" #~ msgid "Show all entries" #~ msgstr "Alle items tonen" #~ msgid "Show only unread entries" #~ msgstr "Alleen ongelezen items tonen" #~ msgid "Edit" #~ msgstr "Bewerken" #~ msgid "Feed group" #~ msgstr "Feed-groep" #~ msgid "Add feed" #~ msgstr "Feed toevoegen" #~ msgid "Add new Feed" #~ msgstr "Nieuwe feed toevoegen" #~ msgid "Posts" #~ msgstr "Berichten" #~ msgid "Save" #~ msgstr "Opslaan" #~ msgid "Url to add to the subscriptions" #~ msgstr "Url om toe te voegen aan de inschrijvingen" #~ msgid "Add" #~ msgstr "Toevoegen" #~ msgid "Bookmark" #~ msgstr "Bladwijzer" alligator-23.08.5/po/nn/000077500000000000000000000000001457614656200147205ustar00rootroot00000000000000alligator-23.08.5/po/nn/alligator.po000066400000000000000000000157741457614656200172540ustar00rootroot00000000000000# Translation of alligator to Norwegian Nynorsk # # Karl Ove Hufthammer , 2020, 2021. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2021-02-18 21:44+0100\n" "Last-Translator: Karl Ove Hufthammer \n" "Language-Team: Norwegian Nynorsk \n" "Language: nn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 20.12.2\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Karl Ove Hufthammer" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "karl@huftis.org" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Kjeldelesar" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS- og Atom-kjeldelesar" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "" #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Legg til kjelde" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "Adresse:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Innstillingar" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Om" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "av" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Detaljar" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Feil (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Opna i nettlesar" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 – detaljar" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "av %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Abonnert sidan: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "sist oppdatert: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 innlegg, %2 ulesne" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 ulesen oppføring" msgstr[1] "%1 ulesne oppføringar" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Importer kjelder" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Alle filer (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML-filer (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML-filer (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Eksporter kjelder" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Alle filer" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Artikkelliste" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Slett etter:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Aldri" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Artiklar" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "dagar" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "veker" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "månadar" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Artikkel" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Skriftstorleik:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Bruk systemstandard" alligator-23.08.5/po/pa/000077500000000000000000000000001457614656200147055ustar00rootroot00000000000000alligator-23.08.5/po/pa/alligator.po000066400000000000000000000236471457614656200172370ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # # A S Alam , 2021. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2021-05-01 23:10-0700\n" "Last-Translator: A S Alam \n" "Language-Team: Punjabi \n" "Language: pa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 20.12.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "ਅਮਨਪਰੀਤ ਸਿੰਘ ਆਲਮ ੨੦੨੧" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "alam.yellow@gmail.com" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "ਮੂਲ" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "ਮੂਲ ਫੀਡ ਗਰੁੱਪ" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "ਐਲੀਗੇਟਰ" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "ਫੀਡ ਰੀਡਰ" #: main.cpp:82 #, fuzzy, kde-format #| msgid "© 2020 KDE Community" msgid "© 2020-2022 KDE Community" msgstr "© 2020 ਕੇਡੀਈ ਕਮਿਊਨਟੀ" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "ਟੋਬਿਸ ਫੇਲਾ" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS/ਅਟੈਮ ਫੀਡ ਰੀਡਰ" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "ਨਵੀਂ ਫੀਡ ਡਾਟਾਬੇਸ ਵਿੱਚ ਜੋੜੋ।" #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "ਫੀਡ URL" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "ਫੀਡ ਜੋੜੋ" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "ਸਭ ਫੀਡਾਂ" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "ਸੈਟਿੰਗਾਂ" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "ਇਸ ਬਾਰੇ" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "ਫੀਡ ਸੋਧੋ" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "ਦਿਖਾਉਣ ਵਾਲਾ ਨਾਂ:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "ਗਰੁੱਪ:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "ਵਲੋਂ" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "ਵੇਰਵੇ" #: qml/EntryListPage.qml:55 #, fuzzy, kde-format #| msgid "Refresh Feed" msgid "Refresh" msgstr "ਫੀਡ ਤਾਜ਼ਾ ਕਰੋ" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "" #: qml/EntryListPage.qml:76 #, fuzzy, kde-format #| msgid "All Files" msgid "All Entries" msgstr "ਸਭ ਫਾਇਲਾਂ" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "ਗ਼ਲਤੀ (%1): %2" #: qml/EntryListPage.qml:95 #, fuzzy, kde-format #| msgid "No Entries available" msgid "No unread entries available" msgstr "ਕੋਈ ਐਂਟਰੀ ਮੌਜੂਦ ਨਹੀਂ ਹੈ" #: qml/EntryListPage.qml:95 #, fuzzy, kde-format #| msgid "No Entries available" msgid "No entries available" msgstr "ਕੋਈ ਐਂਟਰੀ ਮੌਜੂਦ ਨਹੀਂ ਹੈ" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "ਬਰਾਊਜ਼ਰ 'ਚ ਖੋਲ੍ਹੋ" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - ਵੇਰਵੇ" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "%1 ਵਲੋਂ" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "ਮੈਂਬਰ ਹੋ: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "ਆਖਰੀ ਅੱਪਡੇਟ: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 ਪੋਸਟਾਂ, %2 ਨਾ-ਪੜ੍ਹੀਆਂ" #: qml/FeedGroupDialog.qml:23 #, fuzzy, kde-format #| msgid "Feed Groups" msgid "Feed Group" msgstr "ਫੀਡ ਦੇ ਗਰੁੱਪ" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "ਨਾਂ:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "ਵਰਣਨ:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 ਨਾ-ਪੜ੍ਹਿਆ ਇੰਦਰਾਜ਼" msgstr[1] "%1 ਨਾ-ਪੜ੍ਹੇ ਇੰਦਰਾਜ਼" #: qml/FeedListDelegate.qml:30 #, fuzzy, kde-format #| msgid "Delete after:" msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "ਇਸ ਦੇ ਬਾਅਦ ਹਟਾਓ:" #: qml/FeedListDelegate.qml:43 #, fuzzy, kde-format #| msgid "Edit Feed" msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "ਫੀਡ ਸੋਧੋ" #: qml/FeedListPage.qml:18 #, fuzzy, kde-format #| msgid "Feed Groups" msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "ਫੀਡ ਦੇ ਗਰੁੱਪ" #: qml/FeedListPage.qml:29 #, fuzzy, kde-format #| msgid "Refresh all feeds" msgid "Refresh All Feeds" msgstr "ਸਭ ਫੀਡ ਤਾਜ਼ਾ ਕਰੋ" #: qml/FeedListPage.qml:35 #, fuzzy, kde-format #| msgid "Feed Groups" msgid "Manage Feed Groups" msgstr "ਫੀਡ ਦੇ ਗਰੁੱਪ" #: qml/FeedListPage.qml:40 #, fuzzy, kde-format #| msgid "Import Feeds" msgid "Import Feeds…" msgstr "ਫੀਡ ਦਰਾਮਦ ਕਰੋ" #: qml/FeedListPage.qml:45 #, fuzzy, kde-format #| msgid "Export Feeds" msgid "Export Feeds…" msgstr "ਫੀਡ ਬਰਾਮਦ ਕਰੋ" #: qml/FeedListPage.qml:69 #, fuzzy, kde-format #| msgid "Add Feed" msgid "Add Feed…" msgstr "ਫੀਡ ਜੋੜੋ" #: qml/FeedListPage.qml:83 #, fuzzy, kde-format #| msgid "No Feeds added yet" msgid "No feeds added yet" msgstr "ਹਾਲੇ ਕੋਈ ਫੀਡ ਨਹੀਂ ਹੈ" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "ਫੀਡ ਦਰਾਮਦ ਕਰੋ" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "ਸਭ ਫਾਇਲਾਂ (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML ਫਾਇਲਾਂ (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML ਫਾਇਲਾਂ (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "ਫੀਡ ਬਰਾਮਦ ਕਰੋ" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "ਸਭ ਫਾਇਲਾਂ" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "ਗਰੁੱਪ" #: qml/GroupsListPage.qml:24 #, fuzzy, kde-format #| msgid "Add Group" msgid "Add Group…" msgstr "ਗਰੁੱਪ ਜੋੜੋ" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "ਹਟਾਓ" #: qml/GroupsListPage.qml:63 #, fuzzy, kde-format #| msgid "Set as default" msgid "Set as Default" msgstr "ਮੂਲ ਵਲੋਂ ਸੈੱਟ ਕਰੋ" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "ਹਾਲੇ ਕੋਈ ਗਰੁੱਪ ਨਹੀਂ ਬਣਾਇਆ" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "ਗਰੁੱਪ ਜੋੜੋ" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "ਲੇਖ ਦੀ ਸੂਚੀ" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "ਇਸ ਦੇ ਬਾਅਦ ਹਟਾਓ:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "ਕਦੇ ਨਹੀਂ" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "ਲੇਖ" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "ਦਿਨ" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "ਹਫ਼ਤੇ" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "ਮਹੀਨੇ" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "ਲੇਖ" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "ਫੋਂਟ ਦਾ ਆਕਾਰ:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "ਸਿਸਟਮ ਦੇ ਮੂਲ ਵਰਤੋਂ" #~ msgid "Import Feeds..." #~ msgstr "ਫੀਡ ਦਰਾਮਦ ਕਰੋ..." #~ msgid "Export Feeds..." #~ msgstr "ਫੀਡ ਬਰਾਮਦ ਕਰੋ..." #~ msgid "OK" #~ msgstr "ਠੀਕ ਹੈ" #~ msgid "Cancel" #~ msgstr "ਰੱਦ ਕਰੋ" #~ msgid "Configure Groups" #~ msgstr "ਗਰੁੱਪਾਂ ਦੀ ਸੰਰਚਨਾ" #, fuzzy #~| msgid "All Files" #~ msgid "Show all entries" #~ msgstr "ਸਭ ਫਾਇਲਾਂ" #, fuzzy #~| msgid "No Entries available" #~ msgid "Show only unread entries" #~ msgstr "ਕੋਈ ਐਂਟਰੀ ਮੌਜੂਦ ਨਹੀਂ ਹੈ" #~ msgid "Edit" #~ msgstr "ਸੋਧੋ" #~ msgid "Feed group" #~ msgstr "ਫੀਡ ਗਰੁੱਪ" #~ msgid "Add feed" #~ msgstr "ਫੀਡ ਜੋੜੋ" #~ msgid "Add new Feed" #~ msgstr "ਨਵੀਂ ਫੀਡ ਜੋੜੋ" #~ msgid "Posts" #~ msgstr "ਪੋਸਟਾਂ" #~ msgid "Save" #~ msgstr "ਸੰਭਾਲੋ" alligator-23.08.5/po/pl/000077500000000000000000000000001457614656200147205ustar00rootroot00000000000000alligator-23.08.5/po/pl/alligator.po000066400000000000000000000214161457614656200172420ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # # Marcin Stanclik , 2021. # Łukasz Wojniłowicz , 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-03-12 09:22+0100\n" "Last-Translator: Łukasz Wojniłowicz \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: Lokalize 22.12.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Marcin Stanclik, Łukasz Wojniłowicz" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "mstanclik@yahoo.com" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Domyślna" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Domyślna grupa kanałów" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "Nieprawidłowy XML" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Żaden z programów przetwarzających nie był w stanie obsłużyć XML" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Błąd podczas przetwarzania kanału" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Czytnik kanałów" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 Społeczność KDE" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Czytnik kanałów RSS/Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Dodaje nowy kanał do bazy danych." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "adres URL kanału" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Dodaj kanał" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "Url:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Oznacz wpisy jako przeczytane" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Wszystkie kanały RSS" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Ustawienia" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Zarządzaj kanałami" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "O programie" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Edytuj kanał" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Wyświetlana nazwa:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Grupa:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "przez" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Szczegóły" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Odśwież" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Rozwiń pasek boczny" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Zwiń pasek boczny" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Wszystkie wpisy" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Błąd" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Błąd (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Nie ma żadnych nieprzeczytanych wpisów" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Nie ma jeszcze żadnych wpisów" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Wszystkie" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Nieprzeczytana" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Otwórz w przeglądarce" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Szczegóły" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "przez %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Zasubskrybowane od: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "ostatnio uaktualniono: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 postów, %2 nieprzeczytanych" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Grupa kanałów" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Nazwa:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Opis:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 nieprzeczytany wpis" msgstr[1] "%1 nieprzeczytane wpisy" msgstr[2] "%1 nieprzeczytanych wpisów" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Usuń ten kanał" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Edytuj ten kanał" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Zarządzaj kanałami" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Odśwież wszystkie kanały" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Zarządzaj grupami kanałów" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Zaimportuj kanały…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Wyeksportuj kanały…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Dodaj kanał…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Nie dodano jeszcze żadnych kanałów" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Zaimportuj kanały" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Wszystkie pliki (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "Pliki XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "Pliki OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Wyeksportuj kanały" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Wszystkie pliki" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Grupy" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Dodaj grupę…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Usuń" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Ustaw jako domyślne" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Nie utworzono jeszcze żadnych grup" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Dodaj grupę" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Lista artykułów" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Usuń po:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Nigdy" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Artykuły" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Dni" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Tygodnie" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Miesiące" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Artykuł" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Rozmiar czcionki:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Użyj domyślnej systemu" #~ msgid "Import Feeds..." #~ msgstr "Zaimportuj kanały..." #~ msgid "Export Feeds..." #~ msgstr "Wyeksportuj kanały..." #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Anuluj" #~ msgid "Configure Groups" #~ msgstr "Ustawienia grup" #, fuzzy #~| msgid "All Entries" #~ msgid "Show all entries" #~ msgstr "Wszystkie wpisy" #, fuzzy #~| msgid "No Entries available" #~ msgid "Show only unread entries" #~ msgstr "Brak dostępnych wpisów" #~ msgid "Edit" #~ msgstr "Edytuj" #~ msgid "Feed group" #~ msgstr "Grupa kanałów" #~ msgid "Add feed" #~ msgstr "Dodaj kanał" #~ msgid "Add new Feed" #~ msgstr "Dodaj nowy kanał" #~ msgid "Posts" #~ msgstr "Posty" #~ msgid "Save" #~ msgstr "Zapisz" alligator-23.08.5/po/pt/000077500000000000000000000000001457614656200147305ustar00rootroot00000000000000alligator-23.08.5/po/pt/alligator.po000066400000000000000000000172341457614656200172550ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-03-06 16:33+0000\n" "Last-Translator: José Nuno Coelho Pires \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" "X-POFile-SpellExtra: Alligator Fella Atom opml OPML\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "José Nuno Pires" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "zepires@gmail.com" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Predefinição" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Grupo de Fontes Predefinido" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "XML Inválido" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Não foi possível processar o XML de nenhuma forma" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Erro ao processar a fonte" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Leitor de Fontes" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 da Comunidade do KDE" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Leitor de Fontes RSS/Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Adiciona uma nova fonte à base de dados." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "URL da fonte" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Adicionar uma Fonte" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Marcar os itens como lidos" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Todas as Fontes" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Configuração" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Gerir as Fontes" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Acerca" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Editar a Fonte" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Nome Visível:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Grupo:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "de" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Detalhes" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Actualizar" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Expandir a barra lateral" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Recolher a barra lateral" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Todos os Itens" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Erro" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Erro (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Sem itens não-lidos disponíveis" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Sem itens disponíveis" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Tudo" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Não Lido" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Abrir no Navegador" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Detalhes" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "de %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Subscrito desde: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "última actualização: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 publicações, %2 não-lidas" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Grupo de Fontes" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Nome:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Descrição:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 item não-lido" msgstr[1] "%1 itens não-lidos" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Apagar esta Fonte" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Editar esta Fonte" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Gerir as Fontes" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Actualizar Todas as Fontes" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Gerir os Grupos de Fontes" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Importar Fontes…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Exportar as Fontes…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Adicionar uma Fonte…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Nenhuma fonte ainda adicionada" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Importar Fontes" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Todos os Ficheiros (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "Ficheiros XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "Ficheiros OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Exportar as Fontes" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Todos os Ficheiros" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Grupos" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Adicionar um Grupo…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Remover" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Escolher por Omissão" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Nenhum grupo ainda criado" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Adicionar um Grupo" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Lista de Artigos" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Apagar ao fim de:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Nunca" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Artigos" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Dias" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Semanas" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Meses" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Artigo" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Tamanho da letra:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Usar a predefinição do sistema" alligator-23.08.5/po/pt_BR/000077500000000000000000000000001457614656200153135ustar00rootroot00000000000000alligator-23.08.5/po/pt_BR/alligator.po000066400000000000000000000220441457614656200176330ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # # Luiz Fernando Ranghetti , 2020, 2021, 2022, 2023. # Thiago Masato Costa Sueto , 2021. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-24 16:55-0300\n" "Last-Translator: Luiz Fernando Ranghetti \n" "Language-Team: Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 21.12.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Luiz Fernando Ranghetti" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "elchevive@opensuse.org" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Padrão" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Grupo de fonte de notícias padrão" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "XML inválido" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Nenhum analisador aceitou o XML" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Erro ao analisar a fonte de notícias" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Leitor de fontes de notícias" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 Comunidade KDE" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Leitor de fontes de notícias RSS/Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Adiciona uma nova fonte de notícias ao banco de dados." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "URL da fonte de notícias" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Adicionar fonte de notícias" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Marcar entradas como lida" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Todos as fontes de notícias" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Configurações" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Gerenciar fontes de notícias" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Sobre" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Editar fonte de notícias" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Nome de exibição:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Grupo:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "por" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Detalhes" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Atualizar" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Expandir barra lateral" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Recolher barra lateral" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Todas as entradas" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Erro" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Erro (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Nenhuma entrada não lida disponível" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Nenhuma entrada disponível" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Todos" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Não lida" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Abrir no navegador" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Detalhes" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "por %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Inscrito desde: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "última atualização: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 publicações, %2 não lidas" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Grupo da fonte de notícias" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Nome:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Descrição" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 entrada não lida" msgstr[1] "%1 entradas não lidas" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Excluir esta fonte de notícias" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Editar esta fonte de notícias" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Gerenciar fontes de notícias" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Atualizar todas as fontes de notícias" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Gerenciar grupos de fontes de notícias" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Importar fontes de notícias..." #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Exportar fontes de notícias..." #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Adicionar fonte de notícias..." #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Nenhuma fonte de notícia adicionada ainda" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Importar fontes de notícias" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Todos os arquivos (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "Arquivos XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "Arquivos OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Exportar fontes de notícias" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Todos os arquivos" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Grupos" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Adicionar grupo..." #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Remover" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Definir como padrão" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Nenhum grupo criado ainda" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Adicionar grupo" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Lista de artigos" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Excluir após:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Nunca" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Artigos" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Dias" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Semanas" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Meses" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Artigo" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Tamanho da fonte:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Usar padrão do sistema" #~ msgid "Import Feeds..." #~ msgstr "Importar fontes de notícias..." #~ msgid "Export Feeds..." #~ msgstr "Exportar fontes de notícias..." #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Cancelar" #~ msgid "Configure Groups" #~ msgstr "Configurar grupos" #~ msgid "Mark as unread" #~ msgstr "Marcar como não lida" #~ msgid "Mark as read" #~ msgstr "Marcar como lida" #, fuzzy #~| msgid "All Entries" #~ msgid "Show all entries" #~ msgstr "Todas as entradas" #, fuzzy #~| msgid "No unread entries available" #~ msgid "Show only unread entries" #~ msgstr "Nenhuma entrada não lida disponível" #~ msgid "Edit" #~ msgstr "Editar" #~ msgid "Feed group" #~ msgstr "Grupo de fontes de notícias" #~ msgid "Add feed" #~ msgstr "Adicionar fonte de notícias" #~ msgid "Add new Feed" #~ msgstr "Adicionar nova fonte de notícia" #~ msgid "Posts" #~ msgstr "Publicações" #~ msgid "Save" #~ msgstr "Salvar" alligator-23.08.5/po/ru/000077500000000000000000000000001457614656200147335ustar00rootroot00000000000000alligator-23.08.5/po/ru/alligator.po000066400000000000000000000237451457614656200172640ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # # Alexander Yavorsky , 2020, 2022. # Alexander Potashev , 2020. # Olesya Gerasimenko , 2022, 2023. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-03-01 14:02+0300\n" "Last-Translator: Olesya Gerasimenko \n" "Language-Team: Basealt Translation Team\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 22.08.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Олеся Герасименко" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "translation-team@basealt.ru" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "По умолчанию" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Группа лент по умолчанию" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "Некорректный XML" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "XML не принят анализатором" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Ошибка при разборе ленты" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Чтение лент новостей" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© Сообщество KDE, 2020-2022" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Чтение лент новостей RSS/Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Добавляет в базу данных новую ленту." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "URL-адрес ленты новостей" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Добавление ленты новостей" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL-адрес:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Отметить записи как прочитанные" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Все ленты" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Параметры" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Управление лентами" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "О программе" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Редактирование ленты" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Отображаемое имя:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Группа:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr " " #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Подробности" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Обновить" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Развернуть боковую панель" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Свернуть боковую панель" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Все записи" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Ошибка" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Ошибка (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Нет доступных непрочитанных записей" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Нет доступных записей" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Все" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Непрочитанные" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Открыть в браузере" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 — Подробности" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "%1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Дата подписки: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "Последнее обновление: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "Записей — %1, не прочитано — %2" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Группа лент новостей" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Название:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Описание:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 непрочитанная запись" msgstr[1] "%1 непрочитанные записи" msgstr[2] "%1 непрочитанных записей" msgstr[3] "%1 непрочитанная запись" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Удалить эту ленту" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Отредактировать эту ленту" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Управление лентами" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Обновить все ленты" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Группы лент новостей" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Импорт лент…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Экспорт лент…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Добавить ленту…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Ленты новостей ещё не добавлены" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Импорт лент" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Все файлы (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "Файлы XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "Файлы OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Экспорт лент" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Все файлы" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Группы" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Добавить группу…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Удалить" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Установить по умолчанию" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Группы ещё не созданы" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Добавить группу" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Список статей" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Удалить через:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "не удалять" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "(статьи)" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "(дни)" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "(недели)" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "(месяцы)" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Статья" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Размер шрифта:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Использовать системные параметры по умолчанию" #~ msgid "Import Feeds..." #~ msgstr "Импорт лент…" #~ msgid "Export Feeds..." #~ msgstr "Экспорт лент…" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Отмена" #~ msgid "Configure Groups" #~ msgstr "Настройка групп" #~ msgid "Mark as unread" #~ msgstr "Отметить как непрочитанное" #~ msgid "Mark as read" #~ msgstr "Отметить как прочитанное" #, fuzzy #~| msgid "All Entries" #~ msgid "Show all entries" #~ msgstr "Все записи" #, fuzzy #~| msgid "No unread entries available" #~ msgid "Show only unread entries" #~ msgstr "Нет доступных непрочитанных записей" #~ msgid "Edit" #~ msgstr "Изменить" #~ msgid "Feed group" #~ msgstr "Группа лент новостей" #~ msgid "Add feed" #~ msgstr "Добавить ленту" alligator-23.08.5/po/sk/000077500000000000000000000000001457614656200147225ustar00rootroot00000000000000alligator-23.08.5/po/sk/alligator.po000066400000000000000000000203331457614656200172410ustar00rootroot00000000000000# translation of alligator.po to Slovak # Roman Paholík , 2020, 2022. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2022-04-07 17:50+0200\n" "Last-Translator: Roman Paholik \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" "X-Generator: Lokalize 21.12.3\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Roman Paholík" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "wizzardsk@gmail.com" #: database.cpp:67 database.cpp:335 #, fuzzy, kde-format msgid "Default" msgstr "Predvolené" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Čítačka RSS kanálov" #: main.cpp:82 #, fuzzy, kde-format #| msgid "© 2020 KDE Community" msgid "© 2020-2022 KDE Community" msgstr "© 2020 KDE komunita" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, fuzzy, kde-format #| msgid "Feed Reader" msgid "RSS/Atom Feed Reader" msgstr "Čítačka RSS kanálov" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "" #: main.cpp:109 #, fuzzy, kde-format msgid "feed URL" msgstr "&URL kanálu:" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Pridať kanál" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "Url:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Všetky kanály" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Nastavenia" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "O aplikácii" #: qml/EditFeedDialog.qml:15 #, fuzzy, kde-format #| msgid "Add feed" msgid "Edit Feed" msgstr "&Upraviť kanál..." #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Zobrazené meno:" #: qml/EditFeedDialog.qml:45 #, fuzzy, kde-format msgid "Group:" msgstr "Skupina:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "od" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Podrobnosti" #: qml/EntryListPage.qml:55 #, fuzzy, kde-format msgid "Refresh" msgstr "Obnoviť" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Zobraziť položky" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, fuzzy, kde-format msgid "Error (%1): %2" msgstr "Chyba" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Otvoriť v prehliadači" #: qml/FeedDetailsPage.qml:20 #, fuzzy, kde-format #| msgid "Details" msgctxt " - Details" msgid "%1 - Details" msgstr "Podrobnosti" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "od %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "" #: qml/FeedDetailsPage.qml:47 #, fuzzy, kde-format msgid "last updated: %1" msgstr "Naposledy aktualizované: %1." #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "" #: qml/FeedGroupDialog.qml:23 #, fuzzy, kde-format #| msgid "Add Group" msgid "Feed Group" msgstr "Pridať skupinu" #: qml/FeedGroupDialog.qml:43 #, fuzzy, kde-format msgid "Name:" msgstr "Názov:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Popis:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "" #: qml/FeedListDelegate.qml:43 #, fuzzy, kde-format #| msgid "Add feed" msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "&Upraviť kanál..." #: qml/FeedListPage.qml:18 #, fuzzy, kde-format #| msgid "Add Group" msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Pridať skupinu" #: qml/FeedListPage.qml:29 #, fuzzy, kde-format #| msgid "All feeds" msgid "Refresh All Feeds" msgstr "Všetky kanály" #: qml/FeedListPage.qml:35 #, fuzzy, kde-format #| msgid "Add Group" msgid "Manage Feed Groups" msgstr "Pridať skupinu" #: qml/FeedListPage.qml:40 #, fuzzy, kde-format msgid "Import Feeds…" msgstr "&Importovať kanály..." #: qml/FeedListPage.qml:45 #, fuzzy, kde-format msgid "Export Feeds…" msgstr "&Exportovať kanály..." #: qml/FeedListPage.qml:69 #, fuzzy, kde-format #| msgid "Add Feed" msgid "Add Feed…" msgstr "Pridať kanál" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "" #: qml/FeedListPage.qml:120 #, fuzzy, kde-format msgid "Import Feeds" msgstr "&Importovať kanály..." #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Všetky súbory (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML súbory (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "" #: qml/FeedListPage.qml:128 #, fuzzy, kde-format msgid "Export Feeds" msgstr "&Exportovať kanály..." #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Všetky súbory" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Skupiny" #: qml/GroupsListPage.qml:24 #, fuzzy, kde-format #| msgid "Add Group" msgid "Add Group…" msgstr "Pridať skupinu" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Odstrániť" #: qml/GroupsListPage.qml:63 #, fuzzy, kde-format msgid "Set as Default" msgstr "Nastaviť ako predvolené" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Pridať skupinu" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Zoznam článkov" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Nikdy" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Články" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Dni" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Týždne" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Mesiace" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Odsek" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Veľkosť písma:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "" #, fuzzy #~ msgid "Import Feeds..." #~ msgstr "&Importovať kanály..." #, fuzzy #~ msgid "Export Feeds..." #~ msgstr "&Exportovať kanály..." #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Zrušiť" #, fuzzy #~| msgid "All Entries" #~ msgid "Show all entries" #~ msgstr "Zobraziť položky" #, fuzzy #~ msgid "Edit" #~ msgstr "Upraviť" #~ msgid "Add feed" #~ msgstr "Pridať kanál" #, fuzzy #~| msgid "Add feed" #~ msgid "Add new Feed" #~ msgstr "Pridať kanál" #~ msgid "Posts" #~ msgstr "Príspevky" #~ msgid "Save" #~ msgstr "Uložiť" #~ msgid "Add" #~ msgstr "Pridať" #~ msgid "Bookmark" #~ msgstr "Záložka" alligator-23.08.5/po/sl/000077500000000000000000000000001457614656200147235ustar00rootroot00000000000000alligator-23.08.5/po/sl/alligator.po000066400000000000000000000207741457614656200172530ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # # Matjaž Jeran , 2020, 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-28 08:52+0100\n" "Last-Translator: Matjaž Jeran \n" "Language-Team: Slovenian \n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" "X-Generator: Poedit 3.2.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Matjaž Jeran" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "matjaz.jeran@amis.net" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Privzeto" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Privzeta grupa virov" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "Neveljaven XML" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Noben razčlenjevalnik ni sprejel XML" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Napaka pri razčlenjevanju vira" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Bralnik virov" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 skupnost KDE" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Bralnik novic RSS/Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Dodaj nov vir v podatkovno bazo." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "naslov vira" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Dodaj vir" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "Url:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Označi vnose kot prebrane" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Vsi viri" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Nastavitve" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Upravljaj vire" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "O programu" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Uredi vire" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Prikaži ime:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Grupa:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "od" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Podrobnosti" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Osveži" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Razširi stransko letvico" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Strni stransko letvico" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Vsi vnosi" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Napaka" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Napaka (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Nobenega neprebranega vnosa ni na voljo" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Nobenega vnosa ni na voljo" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Vse" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Neprebrano" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Odpri v brskalniku" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Podrobnosti" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "od %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Naročen od: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "zadnjič osveženo: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 objav, %2 neprebranih" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Vir grupe" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Ime:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Opis:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 neprebran vnos" msgstr[1] "%1 neprebrana vnosa" msgstr[2] "%1 neprebrani vnosi" msgstr[3] "%1 neprebranih vnosov" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Zbriši ta vir" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Uredi ta vir" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Upravljaj vire" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Osveži vse vire" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Upravljaj skupine virov" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Uvoz virov…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Izvoz virov…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Dodaj vir…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Ni dodanih nobenih virov" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Uvoz virov" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Vse datoteke (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "Datoteke XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "Datoteke OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Izvoz virov" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Vse datoteke" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Skupine" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Dodaj grupo…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Odstrani" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Nastavi kot privzeto" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Še ni ustvarjene nobene skupine" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Dodaj skupino" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Seznam člankov" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Zbriši po:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Nikoli" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Članki" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Dnevi" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Tedni" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Meseci" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Članek" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Velikost pisave:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Uporabi sistemsko privzeto" #~ msgid "Import Feeds..." #~ msgstr "Uvozi vire..." #~ msgid "Export Feeds..." #~ msgstr "Izvozi vire..." #~ msgid "OK" #~ msgstr "V redu" #~ msgid "Cancel" #~ msgstr "Prekliči" #~ msgid "Configure Groups" #~ msgstr "Konfiguriraj grupe" #~ msgid "Mark as unread" #~ msgstr "Označi kot neprebrano" #~ msgid "Mark as read" #~ msgstr "Označi kot prebrano" #~ msgid "Show all entries" #~ msgstr "Prikaži vse vnose" #~ msgid "Show only unread entries" #~ msgstr "Prikaži samo neprebrane vnose" #~ msgid "Edit" #~ msgstr "Uredi" #~ msgid "Feed group" #~ msgstr "Skupina virov" #~ msgid "Add feed" #~ msgstr "Dodaj vir" #~ msgid "Add new Feed" #~ msgstr "Dodaj novo napajanje" #~ msgid "Posts" #~ msgstr "Objave" #~ msgid "Save" #~ msgstr "Shrani" alligator-23.08.5/po/sv/000077500000000000000000000000001457614656200147355ustar00rootroot00000000000000alligator-23.08.5/po/sv/alligator.po000066400000000000000000000213501457614656200172540ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # # Stefan Asserhäll , 2020, 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-07-24 11:10+0200\n" "Last-Translator: Stefan Asserhäll \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: Lokalize 20.08.1\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Stefan Asserhäll" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "stefan.asserhall@bredband.net" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Förval" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Förvald kanalgrupp" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "Ogiltig XML-data" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Ingen tolk accepterade XML-data" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Fel vid tolkning av kanal" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Kanalläsare" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 KDE-gemenskapen" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS- och Atom-kanalläsare" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Lägger till en ny kanal i databasen." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "kanalens webbadress" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Lägg till kanal" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "Webbadress:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Markera poster som lästa" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Alla kanaler" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Inställningar" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Hantera kanaler" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Om" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Redigera kanal" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Namn som visas:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Grupp:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "av" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Detaljinformation" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Uppdatera" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Expandera sidorad" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Dra ihop sidorad" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Alla poster" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Fel" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Fel (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Inga olästa poster tillgängliga" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Inga artiklar tillgängliga" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Alla" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Oläst" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Öppna i webbläsare" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Detaljinformation" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "av %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Prenumerant sedan: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "senaste uppdatering: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 inlägg, %2 olästa" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Kanalgrupp" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Namn:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Beskrivning:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 oläst post" msgstr[1] "%1 olästa poster" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Ta bort kanal" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Redigera kanal" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Hantera kanaler" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Uppdatera alla kanaler" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Hantera kanalgrupper" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Importera kanaler…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Exportera kanaler…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Lägg till kanal…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Inga kanaler tillagda ännu" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Importera kanaler" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Alla filer (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML-filer (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML-filer (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Exportera kanaler" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Alla filer" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Grupper" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Lägg till grupp…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Ta bort" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Använd som förval" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Inga grupper skapade ännu" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Lägg till grupp" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Artikellista" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Ta bort efter:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Aldrig" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Artiklar" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Dagar" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Veckor" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Månader" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Artikel" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Teckenstorlek:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Använda systemstandard" #~ msgid "Import Feeds..." #~ msgstr "Importera kanaler..." #~ msgid "Export Feeds..." #~ msgstr "Exportera kanaler..." #~ msgid "OK" #~ msgstr "Ok" #~ msgid "Cancel" #~ msgstr "Avbryt" #~ msgid "Configure Groups" #~ msgstr "Anpassa grupper" #~ msgid "Mark as unread" #~ msgstr "Markera som oläst" #~ msgid "Mark as read" #~ msgstr "Markera som läst" #, fuzzy #~| msgid "All Entries" #~ msgid "Show all entries" #~ msgstr "Alla poster" #, fuzzy #~| msgid "No unread entries available" #~ msgid "Show only unread entries" #~ msgstr "Inga olästa poster tillgängliga" #~ msgid "Edit" #~ msgstr "Redigera" #~ msgid "Feed group" #~ msgstr "Kanalgrupp" #~ msgid "Add feed" #~ msgstr "Lägg till kanal" #~ msgid "Add new Feed" #~ msgstr "Lägg till ny kanal" #~ msgid "Posts" #~ msgstr "Inlägg" #~ msgid "Save" #~ msgstr "Spara" #~ msgid "Url to add to the subscriptions" #~ msgstr "Webbadress att lägga till i prenumerationer" #~ msgid "Add" #~ msgstr "Lägg till" #~ msgid "Bookmark" #~ msgstr "Bokmärke" alligator-23.08.5/po/tr/000077500000000000000000000000001457614656200147325ustar00rootroot00000000000000alligator-23.08.5/po/tr/alligator.po000066400000000000000000000213061457614656200172520ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the alligator package. # # Volkan Gezer , 2021. # Emir SARI , 2022, 2023. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-09-03 21:16+0300\n" "Last-Translator: Emir SARI \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: Lokalize 23.11.70\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Hasan Yıldız, Volkan Gezer, Emir SARI" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" "mil.hasan.yildiz1071@gmail.com, volkangezer@gmail.com, emir_sari@icloud.com" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Öntanımlı" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Öntanımlı Besleme Grubu" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "Geçersiz XML" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "XML'yi hiçbir ayrıştırıcı kabul etmedi" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Besleme ayrıştırılırken hata" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Aligatör" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Besleme Okuyucusu" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 KDE Topluluğu" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS/Atom Beslemeleri Okuyucusu" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Veritabanına yeni bir besleme ekler." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "besleme URL'si" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Besleme Ekle" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Girdileri okundu olarak imle" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Tüm Beslemeler" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Ayarlar" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Beslemeleri Yönet" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Hakkında" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Beslemeyi Düzenle" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Görüntüleme Adı:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Grup:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "yazar:" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Ayrıntılar" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Yenile" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Kenar çubuğunu genişlet" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Kenar çubuğunu daralt" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Tüm Girdiler" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Hata" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Hata (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Okunmayan girdi yok" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Kullanılabilir girdi yok" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Tümü" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Okunmayan" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Tarayıcıda Aç" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - Ayrıntılar" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "tarafından %1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Şu tarihten beri abone olundu: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "son güncelleme: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 gönderi, %2 okunmayan" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Besleme Grubu" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Ad:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Açıklama:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 okunmayan girdi" msgstr[1] "%1 okunmayan girdi" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Bu Beslemeyi Sil" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Bu Beslemeyi Düzenle" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Beslemeleri Yönet" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Tüm Beslemeleri Yenile" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Besleme Gruplarını Yönet" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Beslemeler İçe Aktar…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Beslemeleri Dışa Aktar…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Besleme Ekle…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Henüz bir besleme eklenmedi" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Beslemeleri İçe Aktar" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "Tüm Dosyalar (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML Dosyaları (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML Dosyaları (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Beslemeleri Dışa Aktar" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "Tüm Dosyalar" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Gruplar" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Grup Ekle…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Kaldır" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Öntanımlı Olarak Ayarla" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Henüz grup oluşturulmadı" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Grup Ekle" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Yazı Listesi" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Şundan sonra sil:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Asla" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Yazılar" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Gün" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Hafta" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Ay" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Yazı" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Yazıtipi boyutu:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Sistem öntanımlısını kullan" #~ msgid "Import Feeds..." #~ msgstr "Beslemeleri İçe Aktar..." #~ msgid "Export Feeds..." #~ msgstr "Beslemeleri Dışa Aktar..." #~ msgid "OK" #~ msgstr "Tamam" #~ msgid "Cancel" #~ msgstr "İptal" #~ msgid "Configure Groups" #~ msgstr "Grupları Yapılandır" #~ msgid "Mark as unread" #~ msgstr "Okunmadı olarak imle" #~ msgid "Mark as read" #~ msgstr "Okundu olarak imle" #~ msgid "Show all entries" #~ msgstr "Tüm girdileri göster" #~ msgid "Show only unread entries" #~ msgstr "Yalnızca okunmamış girdileri göster" #~ msgid "Edit" #~ msgstr "Düzenle" #~ msgid "Feed group" #~ msgstr "Besleme grubu" #~ msgid "Add feed" #~ msgstr "Besleme ekle" #~ msgid "Add new Feed" #~ msgstr "Yeni Besleme ekle" #~ msgid "Posts" #~ msgstr "Mesaj" #~ msgid "Save" #~ msgstr "Kaydet" alligator-23.08.5/po/uk/000077500000000000000000000000001457614656200147245ustar00rootroot00000000000000alligator-23.08.5/po/uk/alligator.po000066400000000000000000000241371457614656200172510ustar00rootroot00000000000000# Translation of alligator.po to Ukrainian # Copyright (C) 2020-2021 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # # Yuri Chornoivan , 2020, 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2023-02-22 08:35+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 20.12.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Юрій Чорноіван" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "yurchor@ukr.net" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "Типова" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "Типова група подач" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "Некоректний XML" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "Жоден із обробників не зміг обробити XML" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "Помилка під час обробки подачі" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Програма для читання подач" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© Спільнота KDE, 2020–2022" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "Програма для читання подач RSS/Atom" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "Додає до бази даних нову подачу." #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "адреса подачі" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "Додати подачу" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "Адреса:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "Позначити записи як прочитані" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "Всі подачі" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "Параметри" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "Керування подачами" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "Про програму" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "Редагування подачі" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "Екранне ім'я:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "Група:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr " " #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "Подробиці" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "Оновити" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "Розгорнути бічну панель" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "Згорнути бічну панель" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "Усі записи" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "Помилка" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "Помилка (%1): %2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "Немає непрочитаних записів" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "Немає доступних записів" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "Усі" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "Непрочитані" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "Відкрити у браузері" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 — подробиці" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "%1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "Дата підписки: %1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "востаннє оновлено: %1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 дописів, %2 не прочитано" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "Група подач" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "Назва:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "Опис:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 непрочитаний запис" msgstr[1] "%1 непрочитані записи" msgstr[2] "%1 непрочитаних записів" msgstr[3] "%1 непрочитаний запис" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "Вилучити цю подачу" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "Редагувати цю подачу" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "Керування подачами" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "Оновити усі подачі" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "Керувати групами подач" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "Імпортувати подачі…" #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "Експортувати подачі…" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "Додати подачу…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "Подач ще не додано" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "Імпортування подач" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "усі файли (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "файли XML (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "файли OPML (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "Експортування подач" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "усі файли" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "Групи" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "Додати групу…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "Вилучити" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "Зробити типовою" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "Ще не створено жодної групи" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "Додати групу" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "Список статей" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "Вилучати після:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "Ніколи" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "Статті" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "Днів" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "Тижнів" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "Місяців" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "Стаття" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "Розмір шрифту:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "Типовий системний" #~ msgid "Import Feeds..." #~ msgstr "Імпортувати подачі…" #~ msgid "Export Feeds..." #~ msgstr "Експортувати подачі…" #~ msgid "OK" #~ msgstr "Гаразд" #~ msgid "Cancel" #~ msgstr "Скасувати" #~ msgid "Configure Groups" #~ msgstr "Налаштування груп" #~ msgid "Mark as unread" #~ msgstr "Позначити як непрочитане" #~ msgid "Mark as read" #~ msgstr "Позначити як прочитане" #~ msgid "Show all entries" #~ msgstr "Показати всі записи" #~ msgid "Show only unread entries" #~ msgstr "Показати лише непрочитані записи" #~ msgid "Edit" #~ msgstr "Змінити" #~ msgid "Feed group" #~ msgstr "Група подач" #~ msgid "Add feed" #~ msgstr "Додати подачу" #~ msgid "Add new Feed" #~ msgstr "Додати нову подачу" #~ msgid "Posts" #~ msgstr "Дописи" #~ msgid "Save" #~ msgstr "Зберегти" #~ msgid "Url to add to the subscriptions" #~ msgstr "Адреса, яку слід додати до підписок" #~ msgid "Add" #~ msgstr "Додати" #~ msgid "Bookmark" #~ msgstr "Закладка" alligator-23.08.5/po/zh_CN/000077500000000000000000000000001457614656200153065ustar00rootroot00000000000000alligator-23.08.5/po/zh_CN/alligator.po000066400000000000000000000170721457614656200176330ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2024-02-05 11:44\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: kdeorg\n" "X-Crowdin-Project-ID: 269464\n" "X-Crowdin-Language: zh-CN\n" "X-Crowdin-File: /kf5-stable/messages/alligator/alligator.pot\n" "X-Crowdin-File-ID: 41919\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Ratizux, sd369888, Tyson Tan, 陈佳庚" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "ratizux@kde.org, sd369888@kde.org, tds00@qq.com, deconf@kde.org" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "默认" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "默认源分组" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "XML 无效" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "没有接受 XML 的解析器" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "解析新闻源时出错" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "新闻源阅读器" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 KDE 社区" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS/Atom 新闻源阅读器" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "添加新闻源到数据库。" #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "新闻源 URL" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "添加新闻源" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "URL:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "标记条目为已读" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "全部新闻源" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "设置" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "管理新闻源" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "关于" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "编辑新闻源" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "显示名称:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "分组:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "作者:" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "详细信息" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "刷新" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "展开侧栏" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "折叠侧栏" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "全部新闻" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "错误" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "错误 (%1):%2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "无未读条目" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "无可用条目" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "全部" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "未读" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "在浏览器中打开" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - 详细信息" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "作者:%1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "订阅开始时间:%1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "上次更新时间:%1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 篇文章,%2 篇未读" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "新闻源分组" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "名称:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "描述:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 条未读新闻" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "删除新闻源" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "编辑新闻源" #: qml/FeedListPage.qml:18 #, kde-format msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "管理新闻源" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "刷新全部新闻源" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "管理新闻源分组" #: qml/FeedListPage.qml:40 #, kde-format msgid "Import Feeds…" msgstr "导入新闻源..." #: qml/FeedListPage.qml:45 #, kde-format msgid "Export Feeds…" msgstr "导出新闻源..." #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "添加新闻源..." #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "尚未添加新闻源" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "导入新闻源" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "所有文件 (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML 文件 (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML 文件 (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "导出新闻源" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "所有文件" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "分组" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "添加分组..." #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "移除" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "设为默认" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "尚未创建分组" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "添加分组" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "文章列表" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "删除等待时间:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "从不" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "文章" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "天" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "周" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "月" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "文章" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "字体大小:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "使用系统默认值" alligator-23.08.5/po/zh_TW/000077500000000000000000000000001457614656200153405ustar00rootroot00000000000000alligator-23.08.5/po/zh_TW/alligator.po000066400000000000000000000175451457614656200176720ustar00rootroot00000000000000# Chinese translations for alligator package # alligator 套件的正體中文翻譯. # Copyright (C) 2022 This file is copyright: # This file is distributed under the same license as the alligator package. # # Automatically generated, 2022. # Kisaragi Hiu , 2022. msgid "" msgstr "" "Project-Id-Version: alligator\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-03-07 00:46+0000\n" "PO-Revision-Date: 2022-12-24 00:46+0900\n" "Last-Translator: Kisaragi Hiu \n" "Language-Team: Traditional Chinese \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Lokalize 22.08.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Kisaragi Hiu" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "mail@kisaragi-hiu.com" #: database.cpp:67 database.cpp:335 #, kde-format msgid "Default" msgstr "預設" #: database.cpp:68 database.cpp:336 #, kde-format msgid "Default Feed Group" msgstr "預設 feed 群組" #: fetcher.cpp:236 #, kde-format msgid "Invalid XML" msgstr "無效的 XML" #: fetcher.cpp:238 #, kde-format msgid "No parser accepted the XML" msgstr "沒有任何剖析器接受該 XML" #: fetcher.cpp:240 #, kde-format msgid "Error while parsing feed" msgstr "剖析 feed 時發生錯誤" #: main.cpp:78 qml/AlligatorGlobalDrawer.qml:57 #, kde-format msgid "Alligator" msgstr "Alligator" #: main.cpp:80 #, kde-format msgid "Feed Reader" msgstr "Feed 閱讀器" #: main.cpp:82 #, kde-format msgid "© 2020-2022 KDE Community" msgstr "© 2020-2022 KDE 社群" #: main.cpp:83 #, kde-format msgid "Tobias Fella" msgstr "Tobias Fella" #: main.cpp:106 #, kde-format msgid "RSS/Atom Feed Reader" msgstr "RSS/Atom Feed 閱讀器" #: main.cpp:108 #, kde-format msgid "Adds a new feed to database." msgstr "新增一個 feed 到資料庫裡。" #: main.cpp:109 #, kde-format msgid "feed URL" msgstr "feed 網址" #: qml/AddFeedDialog.qml:18 #, kde-format msgid "Add Feed" msgstr "新增 feed" #: qml/AddFeedDialog.qml:30 #, kde-format msgid "Url:" msgstr "網址:" #: qml/AddFeedDialog.qml:40 #, kde-format msgid "Mark entries as read" msgstr "標記條目為已讀" #: qml/AlligatorGlobalDrawer.qml:88 #, kde-format msgid "All Feeds" msgstr "所有 feed" #: qml/AlligatorGlobalDrawer.qml:137 qml/SettingsPage.qml:15 #, kde-format msgid "Settings" msgstr "設定" #: qml/AlligatorGlobalDrawer.qml:148 #, kde-format msgid "Manage Feeds" msgstr "管理 feed" #: qml/AlligatorGlobalDrawer.qml:159 #, kde-format msgid "About" msgstr "關於" #: qml/EditFeedDialog.qml:15 #, kde-format msgid "Edit Feed" msgstr "編輯 feed" #: qml/EditFeedDialog.qml:35 #, kde-format msgid "Display Name:" msgstr "顯示名稱:" #: qml/EditFeedDialog.qml:45 #, kde-format msgid "Group:" msgstr "群組:" #: qml/EntryListDelegate.qml:51 #, kde-format msgctxt "by " msgid "by" msgstr "由" #: qml/EntryListPage.qml:44 #, kde-format msgid "Details" msgstr "詳細資料" #: qml/EntryListPage.qml:55 #, kde-format msgid "Refresh" msgstr "重新整理" #: qml/EntryListPage.qml:64 #, kde-format msgid "Expand sidebar" msgstr "展開側邊欄" #: qml/EntryListPage.qml:64 #, kde-format msgid "Collapse sidebar" msgstr "折疊側邊欄" #: qml/EntryListPage.qml:76 #, kde-format msgid "All Entries" msgstr "所有條目" #: qml/EntryListPage.qml:84 #, kde-format msgid "Error" msgstr "錯誤" #: qml/EntryListPage.qml:85 qml/EntryListPage.qml:97 #, kde-format msgid "Error (%1): %2" msgstr "錯誤(%1):%2" #: qml/EntryListPage.qml:95 #, kde-format msgid "No unread entries available" msgstr "沒有未讀的條目" #: qml/EntryListPage.qml:95 #, kde-format msgid "No entries available" msgstr "沒有條目" #: qml/EntryListPage.qml:134 #, kde-format msgid "All" msgstr "全部" #: qml/EntryListPage.qml:140 #, kde-format msgid "Unread" msgstr "未讀" #: qml/EntryPage.qml:43 #, kde-format msgid "Open in Browser" msgstr "在瀏覽器開啟" #: qml/FeedDetailsPage.qml:20 #, kde-format msgctxt " - Details" msgid "%1 - Details" msgstr "%1 - 詳細資料" #: qml/FeedDetailsPage.qml:36 #, kde-format msgctxt "by " msgid "by %1" msgstr "由:%1" #: qml/FeedDetailsPage.qml:44 #, kde-format msgid "Subscribed since: %1" msgstr "訂閱開始日:%1" #: qml/FeedDetailsPage.qml:47 #, kde-format msgid "last updated: %1" msgstr "上次更新:%1" #: qml/FeedDetailsPage.qml:50 #, kde-format msgid "%1 posts, %2 unread" msgstr "%1 個貼文,%2 條未讀" #: qml/FeedGroupDialog.qml:23 #, kde-format msgid "Feed Group" msgstr "feed 群組" #: qml/FeedGroupDialog.qml:43 #, kde-format msgid "Name:" msgstr "名稱:" #: qml/FeedGroupDialog.qml:50 #, kde-format msgid "Description:" msgstr "描述:" #: qml/FeedListDelegate.qml:21 #, kde-format msgid "%1 unread entry" msgid_plural "%1 unread entries" msgstr[0] "%1 個未讀的條目" #: qml/FeedListDelegate.qml:30 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Delete this Feed" msgstr "刪除此 feed" #: qml/FeedListDelegate.qml:43 #, kde-format msgctxt "'Feed' is an rss feed" msgid "Edit this Feed" msgstr "編輯此 feed" #: qml/FeedListPage.qml:18 #, fuzzy, kde-format #| msgid "Manage Feeds" msgctxt "'Feeds' as in 'RSS Feeds'" msgid "Manage Feeds" msgstr "管理 feed" #: qml/FeedListPage.qml:29 #, kde-format msgid "Refresh All Feeds" msgstr "重新整理所有 feed" #: qml/FeedListPage.qml:35 #, kde-format msgid "Manage Feed Groups" msgstr "管理 feed 群組" #: qml/FeedListPage.qml:40 #, fuzzy, kde-format #| msgid "Import Feeds" msgid "Import Feeds…" msgstr "匯入 feed" #: qml/FeedListPage.qml:45 #, fuzzy, kde-format #| msgid "Export Feeds" msgid "Export Feeds…" msgstr "匯出 feed" #: qml/FeedListPage.qml:69 #, kde-format msgid "Add Feed…" msgstr "新增 feed…" #: qml/FeedListPage.qml:83 #, kde-format msgid "No feeds added yet" msgstr "還沒有新增 feed" #: qml/FeedListPage.qml:120 #, kde-format msgid "Import Feeds" msgstr "匯入 feed" #: qml/FeedListPage.qml:122 #, kde-format msgid "All Files (*)" msgstr "所有檔案 (*)" #: qml/FeedListPage.qml:122 #, kde-format msgid "XML Files (*.xml)" msgstr "XML 檔案 (*.xml)" #: qml/FeedListPage.qml:122 #, kde-format msgid "OPML Files (*.opml)" msgstr "OPML 檔案 (*.opml)" #: qml/FeedListPage.qml:128 #, kde-format msgid "Export Feeds" msgstr "匯出 feed" #: qml/FeedListPage.qml:130 #, kde-format msgid "All Files" msgstr "所有檔案" #: qml/GroupsListPage.qml:18 #, kde-format msgid "Groups" msgstr "群組" #: qml/GroupsListPage.qml:24 #, kde-format msgid "Add Group…" msgstr "新增群組…" #: qml/GroupsListPage.qml:55 #, kde-format msgid "Remove" msgstr "移除" #: qml/GroupsListPage.qml:63 #, kde-format msgid "Set as Default" msgstr "設為預設" #: qml/GroupsListPage.qml:72 #, kde-format msgid "No groups created yet" msgstr "尚未建立群組" #: qml/GroupsListPage.qml:77 #, kde-format msgid "Add Group" msgstr "新增群組" #: qml/SettingsPage.qml:21 #, kde-format msgid "Article List" msgstr "文章列表" #: qml/SettingsPage.qml:25 #, kde-format msgid "Delete after:" msgstr "經過多久後刪除:" #: qml/SettingsPage.qml:38 #, kde-format msgid "Never" msgstr "永不" #: qml/SettingsPage.qml:38 #, kde-format msgid "Articles" msgstr "文章" #: qml/SettingsPage.qml:38 #, kde-format msgid "Days" msgstr "天" #: qml/SettingsPage.qml:38 #, kde-format msgid "Weeks" msgstr "週" #: qml/SettingsPage.qml:38 #, kde-format msgid "Months" msgstr "個月" #: qml/SettingsPage.qml:46 #, kde-format msgid "Article" msgstr "文章" #: qml/SettingsPage.qml:54 #, kde-format msgid "Font size:" msgstr "字型大小:" #: qml/SettingsPage.qml:65 #, kde-format msgid "Use system default" msgstr "使用系統預設" #~ msgid "Import Feeds..." #~ msgstr "匯入 feed…" #~ msgid "Export Feeds..." #~ msgstr "匯出 feed…" alligator-23.08.5/snapcraft.yaml000066400000000000000000000124061457614656200165370ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2023 Scarlett Moore # # SPDX-License-Identifier: CC0-1.0 --- name: alligator confinement: strict grade: stable base: core22 adopt-info: alligator icon: $CRAFT_PROJECT_DIR/logo.png apps: alligator: # extensions: # - kde-neon common-id: org.kde.alligator desktop: usr/share/applications/org.kde.alligator.desktop command: usr/bin/alligator plugs: - home - desktop - desktop-legacy - opengl - wayland - x11 - unity7 - network - network-bind - cups - network-manager-observe command-chain: - snap/command-chain/desktop-launch assumes: - snapd2.58.3 compression: lzo plugs: desktop: mount-host-font-cache: false icon-themes: interface: content target: $SNAP/data-dir/icons default-provider: gtk-common-themes sound-themes: interface: content target: $SNAP/data-dir/sounds default-provider: gtk-common-themes kf5-5-111-qt-5-15-11-core22: content: kf5-5-111-qt-5-15-11-core22-all interface: content default-provider: kf5-5-111-qt-5-15-11-core22 target: $SNAP/kf5 foo-install-cups: interface: content content: foo default-provider: cups target: $SNAP_DATA/foo environment: SNAP_DESKTOP_RUNTIME: $SNAP/kf5 QT_QUICK_CONTROLS_STYLE: org.kde.desktop hooks: configure: plugs: - desktop command-chain: - snap/command-chain/hooks-configure-desktop layout: "/usr/share/X11": symlink: "$SNAP/kf5/usr/share/X11" package-repositories: - type: apt components: - main suites: - jammy key-id: 444DABCF3667D0283F894EDDE6D4736255751E5D url: https://origin.archive.neon.kde.org/user key-server: keyserver.ubuntu.com parts: kde-neon: source: /snap/snapcraft/current/share/snapcraft/extensions/desktop/kde-neon source-type: local plugin: make make-parameters: - PLATFORM_PLUG=kf5-5-111-qt-5-15-11-core22 build-snaps: - kf5-5-111-qt-5-15-11-core22-sdk build-environment: - &id001 PATH: /snap/kf5-5-111-qt-5-15-11-core22-sdk/current/usr/bin${PATH:+:$PATH} - &id002 XDG_DATA_DIRS: $CRAFT_STAGE/usr/share:/snap/kf5-5-111-qt-5-15-11-core22-sdk/current/usr/share:/usr/share${XDG_DATA_DIRS:+:$XDG_DATA_DIRS} - &id003 XDG_CONFIG_HOME: $CRAFT_STAGE/etc/xdg:/snap/kf5-5-111-qt-5-15-11-core22-sdk/current/etc/xdg:/etc/xdg${XDG_CONFIG_HOME:+:$XDG_CONFIG_HOME} - &id004 CRAFT_CMAKE_ARGS: -DCMAKE_FIND_ROOT_PATH=/snap/kf5-5-111-qt-5-15-11-core22-sdk/current${CRAFT_CMAKE_ARGS:+:$CRAFT_CMAKE_ARGS} alligator: after: - kde-neon parse-info: - usr/share/metainfo/org.kde.alligator.appdata.xml plugin: cmake build-packages: - libkf5doctools-dev - kirigami-addons-dev - libkf5syndication-dev stage-packages: - qml-module-org-kde-kirigami2 - kirigami-addons-data - qml-module-org-kde-kirigami-addons-datetime - qml-module-org-kde-kirigami-addons-labs-components - qml-module-org-kde-kirigami-addons-labs-mobileform - qml-module-org-kde-kirigami-addons-sounds - qml-module-org-kde-kirigami-addons-treeview - qml-module-qt-labs-platform - qml-module-qtquick-controls2 - qml-module-org-kde-qqc2desktopstyle - libkf5syndication5 source: . source-type: local cmake-parameters: - "-DCMAKE_INSTALL_PREFIX=/usr" - "-DCMAKE_BUILD_TYPE=Release" - "-DENABLE_TESTING=OFF" - "-DBUILD_TESTING=OFF" - "-DKDE_SKIP_TEST_SETTINGS=ON" - "-DCMAKE_FIND_ROOT_PATH=/usr\\;$CRAFT_STAGE\\;/snap/kf5-5-111-qt-5-15-11-core22-sdk/current" - "-DKDE_INSTALL_PLUGINDIR=/usr/lib/$CRAFT_ARCH_TRIPLET/qt5/plugins/" prime: - "-usr/lib/*/cmake/*" - "-usr/include/*" - "-usr/share/ECM/*" - "-usr/share/docs/*" - "-usr/share/man/*" - "-usr/share/icons/breeze-dark*" - "-usr/bin/X11" - "-usr/lib/gcc/$CRAFT_ARCH_TRIPLET/6.0.0" - "-usr/lib/aspell/*" - "-usr/share/lintian" - "-usr/bin/corelist" - "-usr/bin/cpan" - "-usr/bin/cpan5.34-*" - "-usr/bin/enc2xs" - "-usr/bin/cguess" - "-usr/bin/fc-*" - "-usr/bin/h2ph" - "-usr/bin/h2xs" - "-usr/bin/instmodsh" - "-usr/bin/json_pp" - "-usr/bin/libnetcfg" - "-usr/bin/perl*" - "-usr/bin/piconv" - "-usr/bin/pl2pm" - "-usr/bin/pod2*" - "-usr/bin/preparetips5" - "-usr/bin/prove" - "-usr/bin/ptar*" - "-usr/bin/session-migration" - "-usr/bin/shasum" - "-usr/bin/splain" - "-usr/bin/streamzip" - "-usr/bin/xsubpp" - "-usr/bin/zipdetails" build-environment: &id005 - *id001 - *id002 - *id003 - *id004 cleanup: after: - kde-neon - alligator plugin: nil override-prime: | set -eux # # Unused libraries found by linter alligator-23.08.5/src/000077500000000000000000000000001457614656200144565ustar00rootroot00000000000000alligator-23.08.5/src/CMakeLists.txt000066400000000000000000000030041457614656200172130ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2020 Tobias Fella # SPDX-License-Identifier: BSD-2-Clause add_executable(alligator main.cpp feedsmodel.cpp entriesmodel.cpp entriesproxymodel.cpp fetcher.cpp database.cpp entry.cpp feed.cpp author.cpp feedgroupsmodel.cpp feedsproxymodel.cpp resources.qrc ) kconfig_add_kcfg_files(alligator alligatorsettings.kcfgc GENERATE_MOC) target_include_directories(alligator PRIVATE ${CMAKE_BINARY_DIR}) target_link_libraries(alligator PRIVATE Qt::Core Qt::Qml Qt::Quick Qt::QuickControls2 Qt::Sql KF${QT_MAJOR_VERSION}::Syndication KF${QT_MAJOR_VERSION}::CoreAddons KF${QT_MAJOR_VERSION}::ConfigGui KF${QT_MAJOR_VERSION}::I18n) if(ANDROID) target_link_libraries(alligator PRIVATE KF${QT_MAJOR_VERSION}::Kirigami2 Qt::Svg OpenSSL::SSL ) if(SQLite3_FOUND) target_link_libraries(alligator PRIVATE SQLite::SQLite3) endif() kirigami_package_breeze_icons(ICONS bookmark-remove bookmark-new delete settings-configure help-about-symbolic list-add view-refresh alligator mail-mark-read mail-read mail-mark-unread mail-sent globe data-error rss document-import document-export edit-group arrow-down arrow-up ) else() target_link_libraries(alligator PRIVATE Qt::Widgets) endif() install(TARGETS alligator ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) alligator-23.08.5/src/Messages.sh000066400000000000000000000003141457614656200165570ustar00rootroot00000000000000#! /usr/bin/env bash # SPDX-FileCopyrightText: 2020 Tobias Fella # SPDX-License-Identifier: CC0-1.0 $XGETTEXT `find -name \*.cpp -o -name \*.qml -o -name \*.js` -o $podir/alligator.pot alligator-23.08.5/src/alligatorsettings.kcfg000066400000000000000000000017461457614656200210610ustar00rootroot00000000000000 2 10 true 3 false alligator-23.08.5/src/alligatorsettings.kcfgc000066400000000000000000000002201457614656200212060ustar00rootroot00000000000000File=alligatorsettings.kcfg ClassName=AlligatorSettings Mutators=true DefaultValueGetters=true GenerateProperties=true ParentInConstructor=true alligator-23.08.5/src/author.cpp000066400000000000000000000010401457614656200164570ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #include "author.h" Author::Author(const QString &name, const QString &email, const QString &url, QObject *parent) : QObject(parent) , m_name(name) , m_email(email) , m_url(url) { } Author::~Author() { } QString Author::name() const { return m_name; } QString Author::email() const { return m_email; } QString Author::url() const { return m_url; } alligator-23.08.5/src/author.h000066400000000000000000000012311457614656200161260ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #pragma once #include class Author : public QObject { Q_OBJECT Q_PROPERTY(QString name READ name CONSTANT) Q_PROPERTY(QString email READ email CONSTANT) Q_PROPERTY(QString url READ url CONSTANT) public: Author(const QString &name, const QString &email, const QString &url, QObject *parent = nullptr); ~Author(); QString name() const; QString email() const; QString url() const; private: QString m_name; QString m_email; QString m_url; }; alligator-23.08.5/src/database.cpp000066400000000000000000000274531457614656200167410ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #include #include #include #include #include #include #include #include #include #include "alligatorsettings.h" #include "database.h" #include "fetcher.h" #define TRUE_OR_RETURN(x) \ if (!x) \ return false; Database::Database() { QSqlDatabase db = QSqlDatabase::addDatabase(QStringLiteral("QSQLITE")); QString databasePath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation); QDir(databasePath).mkpath(databasePath); db.setDatabaseName(databasePath + QStringLiteral("/database.db3")); if (!db.open()) { qCritical() << "Failed to open the database"; } if (!migrateTo(2)) { qCritical() << "Failed to migrate the database"; } cleanup(); } bool Database::migrateTo(const int targetVersion) { if (version() >= targetVersion) { qDebug() << "Database already in version" << targetVersion; return true; } switch (targetVersion) { case 1: return migrateTo1(); case 2: return migrateTo2(); default: return true; } } bool Database::migrateTo2() { migrateTo(1); qDebug() << "Migrating database to version 2"; TRUE_OR_RETURN(execute(QStringLiteral("CREATE TABLE IF NOT EXISTS FeedGroups (name TEXT NOT NULL, description TEXT, defaultGroup INTEGER);"))); TRUE_OR_RETURN(execute(QStringLiteral("ALTER TABLE Feeds ADD COLUMN groupName TEXT;"))); TRUE_OR_RETURN(execute(QStringLiteral("ALTER TABLE Feeds ADD COLUMN displayName TEXT;"))); auto dg = i18n("Default"); TRUE_OR_RETURN(execute(QStringLiteral("INSERT INTO FeedGroups VALUES ('%1', '%2', 1);").arg(dg, i18n("Default Feed Group")))); TRUE_OR_RETURN(execute(QStringLiteral("UPDATE Feeds SET groupName = '%1';").arg(dg))); TRUE_OR_RETURN(execute(QStringLiteral("PRAGMA user_version = 2;"))); return true; } bool Database::migrateTo1() { qDebug() << "Migrating database to version 1"; TRUE_OR_RETURN( execute(QStringLiteral("CREATE TABLE IF NOT EXISTS Feeds (name TEXT, url TEXT, image TEXT, link TEXT, description TEXT, deleteAfterCount INTEGER, " "deleteAfterType INTEGER, subscribed INTEGER, lastUpdated INTEGER, notify BOOL);"))); TRUE_OR_RETURN(execute(QStringLiteral( "CREATE TABLE IF NOT EXISTS Entries (feed TEXT, id TEXT UNIQUE, title TEXT, content TEXT, created INTEGER, updated INTEGER, link TEXT, read bool);"))); TRUE_OR_RETURN(execute(QStringLiteral("CREATE TABLE IF NOT EXISTS Authors (feed TEXT, id TEXT, name TEXT, uri TEXT, email TEXT);"))); TRUE_OR_RETURN(execute( QStringLiteral("CREATE TABLE IF NOT EXISTS Enclosures (feed TEXT, id TEXT, duration INTEGER, size INTEGER, title TEXT, type STRING, url STRING);"))); TRUE_OR_RETURN(execute(QStringLiteral("PRAGMA user_version = 1;"))); return true; } bool Database::execute(const QString &query) { QSqlQuery q; if (q.prepare(query)) { return execute(q); } else { return false; } } bool Database::execute(QSqlQuery &query) { if (!query.exec()) { qWarning() << "Failed to execute SQL Query"; qWarning() << query.lastQuery(); qWarning() << query.lastError(); return false; } return true; } int Database::version() { QSqlQuery query; if (query.prepare(QStringLiteral("PRAGMA user_version;"))) { execute(query); if (query.next()) { bool ok; int value = query.value(0).toInt(&ok); qDebug() << "Database version " << value; if (ok) { return value; } } } qCritical() << "Failed to check database version"; return -1; } void Database::cleanup() { AlligatorSettings settings; int count = settings.deleteAfterCount(); int type = settings.deleteAfterType(); if (type == 0) { // Never delete Entries return; } if (type == 1) { // Delete after posts per feed // TODO } else { QDateTime dateTime = QDateTime::currentDateTime(); if (type == 2) { dateTime = dateTime.addDays(-count); } else if (type == 3) { dateTime = dateTime.addDays(-7 * count); } else if (type == 4) { dateTime = dateTime.addMonths(-count); } qint64 sinceEpoch = dateTime.toSecsSinceEpoch(); QSqlQuery query; if (query.prepare(QStringLiteral("DELETE FROM Entries WHERE updated < :sinceEpoch;"))) { query.bindValue(QStringLiteral(":sinceEpoch"), sinceEpoch); execute(query); } } } bool Database::feedExists(const QString &url) { QSqlQuery query; if (query.prepare(QStringLiteral("SELECT COUNT (url) FROM Feeds WHERE url=:url;"))) { query.bindValue(QStringLiteral(":url"), url); Database::instance().execute(query); query.next(); return query.value(0).toInt() != 0; } else { return false; } } void Database::addFeed(const QString &url, const QString &groupName, const bool markEntriesRead) { qDebug() << "Adding feed"; if (feedExists(url)) { qDebug() << "Feed already exists"; return; } qDebug() << "Feed does not yet exist"; QUrl urlFromInput = QUrl::fromUserInput(url); QSqlQuery query; if (query.prepare(QStringLiteral("INSERT INTO Feeds VALUES (:name, :url, :image, :link, :description, :deleteAfterCount, :deleteAfterType, :subscribed, " ":lastUpdated, :notify, :groupName, :displayName);"))) { query.bindValue(QStringLiteral(":name"), urlFromInput.toString()); query.bindValue(QStringLiteral(":url"), urlFromInput.toString()); query.bindValue(QStringLiteral(":image"), QLatin1String("")); query.bindValue(QStringLiteral(":link"), QLatin1String("")); query.bindValue(QStringLiteral(":description"), QLatin1String("")); query.bindValue(QStringLiteral(":deleteAfterCount"), 0); query.bindValue(QStringLiteral(":deleteAfterType"), 0); query.bindValue(QStringLiteral(":subscribed"), QDateTime::currentDateTime().toSecsSinceEpoch()); query.bindValue(QStringLiteral(":lastUpdated"), 0); query.bindValue(QStringLiteral(":notify"), false); query.bindValue(QStringLiteral(":groupName"), groupName.isEmpty() ? defaultGroup() : groupName); query.bindValue(QStringLiteral(":displayName"), QLatin1String("")); execute(query); Q_EMIT feedAdded(urlFromInput.toString()); Fetcher::instance().fetch(urlFromInput.toString(), markEntriesRead); } } void Database::importFeeds(const QString &path) { QUrl url(path); QFile file(url.isLocalFile() ? url.toLocalFile() : url.toString()); file.open(QIODevice::ReadOnly); QXmlStreamReader xmlReader(&file); while (!xmlReader.atEnd()) { xmlReader.readNext(); if (xmlReader.tokenType() == 4 && xmlReader.attributes().hasAttribute(QStringLiteral("xmlUrl"))) { addFeed(xmlReader.attributes().value(QStringLiteral("xmlUrl")).toString()); } } Fetcher::instance().fetchAll(); } void Database::exportFeeds(const QString &path) { QUrl url(path); QFile file(url.isLocalFile() ? url.toLocalFile() : url.toString()); file.open(QIODevice::WriteOnly); QXmlStreamWriter xmlWriter(&file); xmlWriter.setAutoFormatting(true); xmlWriter.writeStartDocument(QStringLiteral("1.0")); xmlWriter.writeStartElement(QStringLiteral("opml")); xmlWriter.writeEmptyElement(QStringLiteral("head")); xmlWriter.writeStartElement(QStringLiteral("body")); xmlWriter.writeAttribute(QStringLiteral("version"), QStringLiteral("1.0")); QSqlQuery query; if (query.prepare(QStringLiteral("SELECT url, name FROM Feeds;"))) { execute(query); while (query.next()) { xmlWriter.writeEmptyElement(QStringLiteral("outline")); xmlWriter.writeAttribute(QStringLiteral("xmlUrl"), query.value(0).toString()); xmlWriter.writeAttribute(QStringLiteral("title"), query.value(1).toString()); } xmlWriter.writeEndElement(); xmlWriter.writeEndElement(); xmlWriter.writeEndDocument(); } } void Database::addFeedGroup(const QString &name, const QString &description, const int isDefault) { if (feedGroupExists(name)) { qDebug() << "Feed group already exists, nothing to add"; return; } QSqlQuery query; if (query.prepare(QStringLiteral("INSERT INTO FeedGroups VALUES (:name, :desc, :isDefault);"))) { query.bindValue(QStringLiteral(":name"), name); query.bindValue(QStringLiteral(":desc"), description); query.bindValue(QStringLiteral(":isDefault"), isDefault); execute(query); Q_EMIT feedGroupsUpdated(); } } void Database::editFeed(const QString &url, const QString &displayName, const QString &groupName) { QSqlQuery query; if (query.prepare(QStringLiteral("UPDATE Feeds SET displayName = :displayName, groupName = :groupName WHERE url = :url;"))) { query.bindValue(QStringLiteral(":displayName"), displayName); query.bindValue(QStringLiteral(":groupName"), groupName); query.bindValue(QStringLiteral(":url"), url); execute(query); Q_EMIT feedDetailsUpdated(url, displayName, groupName); } } void Database::removeFeedGroup(const QString &name) { clearFeedGroup(name); QSqlQuery query; if (query.prepare(QStringLiteral("DELETE FROM FeedGroups WHERE name = :name;"))) { query.bindValue(QStringLiteral(":name"), name); execute(query); Q_EMIT feedGroupRemoved(name); } } void Database::setRead(const QString &entryId, bool read) { QSqlQuery query; if (query.prepare(QStringLiteral("UPDATE Entries SET read=:read WHERE id=:id"))) { query.bindValue(QStringLiteral(":id"), entryId); query.bindValue(QStringLiteral(":read"), read); execute(query); Q_EMIT entryReadChanged(entryId, read); } } bool Database::feedGroupExists(const QString &name) { QSqlQuery query; if (query.prepare(QStringLiteral("SELECT COUNT (1) FROM FeedGroups WHERE name = :name;"))) { query.bindValue(QStringLiteral(":name"), name); Database::instance().execute(query); query.next(); return (query.value(0).toInt() != 0); } else { return false; } } void Database::clearFeedGroup(const QString &name) { QSqlQuery query; if (query.prepare(QStringLiteral("UPDATE Feeds SET groupName = NULL WHERE groupName = :name;"))) { query.bindValue(QStringLiteral(":name"), name); execute(query); } } QString Database::defaultGroup() { QSqlQuery query; if (query.prepare(QStringLiteral("SELECT Name FROM FeedGroups WHERE defaultGroup = 1"))) { execute(query); if (query.next()) { return query.value(0).toString(); } } auto dg = i18n("Default"); addFeedGroup(dg, i18n("Default Feed Group"), 1); return dg; } void Database::setDefaultGroup(const QString &name) { if (execute(QStringLiteral("UPDATE FeedGroups SET defaultGroup = 0;"))) { QSqlQuery query; if (query.prepare(QStringLiteral("UPDATE FeedGroups SET defaultGroup = 1 WHERE name = :name ;"))) { query.bindValue(QStringLiteral(":name"), name); execute(query); Q_EMIT feedGroupsUpdated(); } } } alligator-23.08.5/src/database.h000066400000000000000000000032331457614656200163740ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #pragma once #include class Database : public QObject { Q_OBJECT public: static Database &instance() { static Database _instance; return _instance; } bool execute(QSqlQuery &query); bool execute(const QString &query); Q_INVOKABLE void addFeed(const QString &url, const QString &groupName = QString(), const bool markEntriesRead = false); Q_INVOKABLE void importFeeds(const QString &path); Q_INVOKABLE void exportFeeds(const QString &path); Q_INVOKABLE void addFeedGroup(const QString &name, const QString &description, const int isDefault = 0); Q_INVOKABLE void removeFeedGroup(const QString &name); Q_INVOKABLE void setDefaultGroup(const QString &name); Q_INVOKABLE void editFeed(const QString &url, const QString &displayName, const QString &groupName); Q_INVOKABLE void setRead(const QString &entryId, bool read); Q_SIGNALS: void feedAdded(const QString &url); void feedDetailsUpdated(const QString &url, const QString &displayName, const QString &description); void feedGroupsUpdated(); void feedGroupRemoved(const QString &groupName); void entryReadChanged(const QString &entryId, bool read); private: bool feedGroupExists(const QString &name); void clearFeedGroup(const QString &name); QString defaultGroup(); Database(); int version(); bool migrateTo(const int targetVersion); bool migrateTo1(); bool migrateTo2(); void cleanup(); bool feedExists(const QString &url); }; alligator-23.08.5/src/entriesmodel.cpp000066400000000000000000000035101457614656200176530ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #include #include #include "database.h" #include "entriesmodel.h" #include "fetcher.h" EntriesModel::EntriesModel(Feed *feed) : QAbstractListModel(feed) , m_feed(feed) { connect(&Fetcher::instance(), &Fetcher::feedUpdated, this, [this](const QString &url) { if (!m_feed || m_feed->url() == url) { beginResetModel(); for (auto &entry : m_entries) { delete entry; } m_entries.clear(); endResetModel(); } }); } EntriesModel::~EntriesModel() { qDeleteAll(m_entries); } QVariant EntriesModel::data(const QModelIndex &index, int role) const { if (role != 0) { return QVariant(); } if (m_entries[index.row()] == nullptr) { loadEntry(index.row()); } return QVariant::fromValue(m_entries[index.row()]); } QHash EntriesModel::roleNames() const { QHash roleNames; roleNames[0] = "entry"; return roleNames; } int EntriesModel::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent) QSqlQuery query; if (m_feed) { query.prepare(QStringLiteral("SELECT COUNT() FROM Entries WHERE feed=:feed;")); query.bindValue(QStringLiteral(":feed"), m_feed->url()); } else { query.prepare(QStringLiteral("SELECT COUNT() FROM Entries;")); } Database::instance().execute(query); if (!query.next()) { qWarning() << "Failed to query feed count"; } return query.value(0).toInt(); } void EntriesModel::loadEntry(int index) const { m_entries[index] = new Entry(m_feed, index); } Feed *EntriesModel::feed() const { return m_feed; } alligator-23.08.5/src/entriesmodel.h000066400000000000000000000015061457614656200173230ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #pragma once #include #include #include #include #include "entry.h" #include "feed.h" class EntriesModel : public QAbstractListModel { Q_OBJECT Q_PROPERTY(Feed *feed READ feed CONSTANT) public: explicit EntriesModel(Feed *feed = nullptr); ~EntriesModel() override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; QHash roleNames() const override; int rowCount(const QModelIndex &parent) const override; Feed *feed() const; private: void loadEntry(int index) const; Feed *m_feed; mutable QHash m_entries; }; alligator-23.08.5/src/entriesproxymodel.cpp000066400000000000000000000022471457614656200207630ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: 2021 Dimitris Kardarakos * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "entriesproxymodel.h" #include "database.h" #include "entry.h" EntriesProxyModel::EntriesProxyModel(QObject *parent) : QSortFilterProxyModel(parent) , m_onlyUnread(false) { connect(&Database::instance(), &Database::entryReadChanged, this, [this]() { invalidateFilter(); }); } EntriesProxyModel::~EntriesProxyModel() { } void EntriesProxyModel::setOnlyUnread(bool onlyUnread) { if (m_onlyUnread != onlyUnread) { m_onlyUnread = onlyUnread; invalidateFilter(); Q_EMIT onlyUnreadChanged(); } } bool EntriesProxyModel::onlyUnread() const { return m_onlyUnread; } bool EntriesProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const { const auto idx = sourceModel()->index(source_row, 0, source_parent); if (!QSortFilterProxyModel::filterAcceptsRow(source_row, source_parent)) { return false; } if (!m_onlyUnread) { return true; } auto entry = idx.data(0).value(); return !entry->read(); return false; } alligator-23.08.5/src/entriesproxymodel.h000066400000000000000000000013301457614656200204200ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: 2021 Dimitris Kardarakos * * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include /** * @brief Filters EntriesModel * */ class EntriesProxyModel : public QSortFilterProxyModel { Q_OBJECT Q_PROPERTY(bool onlyUnread READ onlyUnread WRITE setOnlyUnread NOTIFY onlyUnreadChanged) public: explicit EntriesProxyModel(QObject *parent = nullptr); ~EntriesProxyModel() override; bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; bool onlyUnread() const; void setOnlyUnread(bool onlyUnread); Q_SIGNALS: void onlyUnreadChanged(); private: bool m_onlyUnread; }; alligator-23.08.5/src/entry.cpp000066400000000000000000000107751457614656200163350ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #include "entry.h" #include #include #include #include #include "database.h" Entry::Entry(Feed *feed, int index) : QObject(nullptr) , m_feed(feed) { QSqlQuery entryQuery; bool entryQueryPrepared = false; if (m_feed) { entryQueryPrepared = entryQuery.prepare(QStringLiteral("SELECT * FROM Entries WHERE feed=:feed ORDER BY updated DESC LIMIT 1 OFFSET :index;")); entryQuery.bindValue(QStringLiteral(":feed"), m_feed->url()); } else { entryQueryPrepared = entryQuery.prepare(QStringLiteral("SELECT * FROM Entries ORDER BY updated DESC LIMIT 1 OFFSET :index;")); } if (entryQueryPrepared) { entryQuery.bindValue(QStringLiteral(":index"), index); Database::instance().execute(entryQuery); if (!entryQuery.next()) { qWarning() << "No element with index" << index << "found"; if (m_feed) { qDebug() << " in feed" << m_feed->url(); } } } QSqlQuery authorQuery; if (authorQuery.prepare(QStringLiteral("SELECT * FROM Authors WHERE id=:id"))) { authorQuery.bindValue(QStringLiteral(":id"), entryQuery.value(QStringLiteral("id")).toString()); Database::instance().execute(authorQuery); while (authorQuery.next()) { m_authors += new Author(authorQuery.value(QStringLiteral("name")).toString(), authorQuery.value(QStringLiteral("email")).toString(), authorQuery.value(QStringLiteral("uri")).toString(), nullptr); } } m_created.setSecsSinceEpoch(entryQuery.value(QStringLiteral("created")).toInt()); m_updated.setSecsSinceEpoch(entryQuery.value(QStringLiteral("updated")).toInt()); m_id = entryQuery.value(QStringLiteral("id")).toString(); m_title = entryQuery.value(QStringLiteral("title")).toString(); m_content = entryQuery.value(QStringLiteral("content")).toString(); m_link = entryQuery.value(QStringLiteral("link")).toString(); m_read = entryQuery.value(QStringLiteral("read")).toBool(); } Entry::~Entry() { qDeleteAll(m_authors); } QString Entry::id() const { return m_id; } QString Entry::title() const { return m_title; } QString Entry::content() const { return m_content; } QVector Entry::authors() const { return m_authors; } QDateTime Entry::created() const { return m_created; } QDateTime Entry::updated() const { return m_updated; } QString Entry::link() const { return m_link; } bool Entry::read() const { return m_read; } QString Entry::baseUrl() const { return QUrl(m_link).adjusted(QUrl::RemovePath).toString(); } void Entry::openLink(const QString &link) { QUrl url(link); if (link.startsWith(QStringLiteral("//"))) { // we a protocol-relative, see https://en.wikipedia.org/wiki/Wikipedia:Protocol-relative_URL url.setScheme(QUrl(m_link).scheme()); } QDesktopServices::openUrl(url); } void Entry::setRead(bool read) { m_read = read; Q_EMIT readChanged(m_read); Database::instance().setRead(m_id, m_read); if (m_feed) { Q_EMIT m_feed->unreadEntryCountChanged(); } } QString Entry::adjustedContent(int width, int fontSize) { QString ret(m_content); QRegularExpression imgRegex(QStringLiteral("]*>")); QRegularExpressionMatchIterator i = imgRegex.globalMatch(ret); while (i.hasNext()) { QRegularExpressionMatch match = i.next(); QString imgTag(match.captured()); if (imgTag.contains(QStringLiteral("wp-smiley"))) { imgTag.insert(4, QStringLiteral(" width=\"%1\"").arg(fontSize)); } QString widthParameter = match.captured(4); if (widthParameter.length() != 0) { if (widthParameter.toInt() > width) { imgTag.replace(match.captured(3), QStringLiteral("width=\"%1\"").arg(width)); imgTag.replace(QRegularExpression(QStringLiteral("height=\"([0-9]+)(px)?\"")), QString()); } } else { imgTag.insert(4, QStringLiteral(" width=\"%1\"").arg(width)); } ret.replace(match.captured(), imgTag); } ret.replace(QStringLiteral(" * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #pragma once #include #include #include #include #include #include "author.h" #include "feed.h" class Entry : public QObject { Q_OBJECT Q_PROPERTY(QString id READ id CONSTANT) Q_PROPERTY(QString title READ title CONSTANT) Q_PROPERTY(QString content READ content CONSTANT) Q_PROPERTY(QVector authors READ authors CONSTANT) Q_PROPERTY(QDateTime created READ created CONSTANT) Q_PROPERTY(QDateTime updated READ updated CONSTANT) Q_PROPERTY(QString link READ link CONSTANT) Q_PROPERTY(QString baseUrl READ baseUrl CONSTANT) Q_PROPERTY(bool read READ read WRITE setRead NOTIFY readChanged) public: Entry(Feed *feed, int index); ~Entry(); QString id() const; QString title() const; QString content() const; QVector authors() const; QDateTime created() const; QDateTime updated() const; QString link() const; bool read() const; Q_INVOKABLE void openLink(const QString &link); QString baseUrl() const; void setRead(bool read); Q_INVOKABLE QString adjustedContent(int width, int fontSize); Q_SIGNALS: void readChanged(bool read); private: Feed *m_feed; QString m_id; QString m_title; QString m_content; QVector m_authors; QDateTime m_created; QDateTime m_updated; QString m_link; bool m_read; }; alligator-23.08.5/src/feed.cpp000066400000000000000000000172561457614656200161000ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #include #include "database.h" #include "entriesmodel.h" #include "feed.h" #include "fetcher.h" Feed::Feed(int index) : QObject(nullptr) { QSqlQuery query; if (query.prepare(QStringLiteral("SELECT * FROM Feeds LIMIT 1 OFFSET :index;"))) { query.bindValue(QStringLiteral(":index"), index); Database::instance().execute(query); if (!query.next()) { qWarning() << "Failed to load feed" << index; } QSqlQuery authorQuery; if (authorQuery.prepare(QStringLiteral("SELECT * FROM Authors WHERE id='' AND feed=:feed"))) { authorQuery.bindValue(QStringLiteral(":feed"), query.value(QStringLiteral("url")).toString()); Database::instance().execute(authorQuery); while (authorQuery.next()) { m_authors += new Author(authorQuery.value(QStringLiteral("name")).toString(), authorQuery.value(QStringLiteral("email")).toString(), authorQuery.value(QStringLiteral("uri")).toString(), nullptr); } } m_subscribed.setSecsSinceEpoch(query.value(QStringLiteral("subscribed")).toInt()); m_lastUpdated.setSecsSinceEpoch(query.value(QStringLiteral("lastUpdated")).toInt()); m_url = query.value(QStringLiteral("url")).toString(); m_name = query.value(QStringLiteral("name")).toString(); m_display_name = query.value(QStringLiteral("displayName")).toString(); m_image = query.value(QStringLiteral("image")).toString(); m_link = query.value(QStringLiteral("link")).toString(); m_description = query.value(QStringLiteral("description")).toString(); m_group_name = query.value(QStringLiteral("groupName")).toString(); m_deleteAfterCount = query.value(QStringLiteral("deleteAfterCount")).toInt(); m_deleteAfterType = query.value(QStringLiteral("deleteAfterType")).toInt(); m_notify = query.value(QStringLiteral("notify")).toBool(); } else { qWarning() << "Failed to load feed" << index; } m_errorId = 0; m_errorString = QLatin1String(""); connect(&Fetcher::instance(), &Fetcher::startedFetchingFeed, this, [this](const QString &url) { if (url == m_url) { setRefreshing(true); } }); connect(&Fetcher::instance(), &Fetcher::feedUpdated, this, [this](const QString &url) { if (url == m_url) { setRefreshing(false); Q_EMIT entryCountChanged(); Q_EMIT unreadEntryCountChanged(); setErrorId(0); setErrorString(QLatin1String("")); } }); connect(&Fetcher::instance(), &Fetcher::error, this, [this](const QString &url, int errorId, const QString &errorString) { if (url == m_url) { setErrorId(errorId); setErrorString(errorString); setRefreshing(false); } }); connect(&Fetcher::instance(), &Fetcher::imageDownloadFinished, this, [this](const QString &url) { if (url == m_image) { Q_EMIT imageChanged(url); } }); m_entries = new EntriesModel(this); } Feed::~Feed() { } QString Feed::url() const { return m_url; } QString Feed::name() const { return m_name; } QString Feed::displayName() const { return m_display_name; } QString Feed::image() const { return m_image; } QString Feed::link() const { return m_link; } QString Feed::description() const { return m_description; } QString Feed::groupName() const { return m_group_name; } QVector Feed::authors() const { return m_authors; } int Feed::deleteAfterCount() const { return m_deleteAfterCount; } int Feed::deleteAfterType() const { return m_deleteAfterType; } QDateTime Feed::subscribed() const { return m_subscribed; } QDateTime Feed::lastUpdated() const { return m_lastUpdated; } bool Feed::notify() const { return m_notify; } int Feed::entryCount() const { static const int errorReturn = -1; QSqlQuery query; if (query.prepare(QStringLiteral("SELECT COUNT (id) FROM Entries where feed=:feed;"))) { query.bindValue(QStringLiteral(":feed"), m_url); Database::instance().execute(query); if (!query.next()) { return errorReturn; } return query.value(0).toInt(); } else { return errorReturn; } } int Feed::unreadEntryCount() const { static const int errorReturn = -1; QSqlQuery query; if (query.prepare(QStringLiteral("SELECT COUNT (id) FROM Entries where feed=:feed AND read=0;"))) { query.bindValue(QStringLiteral(":feed"), m_url); Database::instance().execute(query); if (!query.next()) { return errorReturn; } return query.value(0).toInt(); } else { return errorReturn; } } bool Feed::refreshing() const { return m_refreshing; } int Feed::errorId() const { return m_errorId; } QString Feed::errorString() const { return m_errorString; } void Feed::setName(const QString &name) { m_name = name; Q_EMIT nameChanged(m_name); } void Feed::setDisplayName(const QString &displayName) { if (m_display_name != displayName) { m_display_name = displayName; Q_EMIT displayNameChanged(m_display_name); } } void Feed::setImage(const QString &image) { m_image = image; Q_EMIT imageChanged(m_image); } void Feed::setLink(const QString &link) { m_link = link; Q_EMIT linkChanged(m_link); } void Feed::setDescription(const QString &description) { m_description = description; Q_EMIT descriptionChanged(m_description); } void Feed::setGroupName(const QString &groupName) { if (m_group_name != groupName) { m_group_name = groupName; Q_EMIT groupNameChanged(groupName); } } void Feed::setAuthors(const QVector &authors) { m_authors = authors; Q_EMIT authorsChanged(m_authors); } void Feed::setDeleteAfterCount(int count) { m_deleteAfterCount = count; Q_EMIT deleteAfterCountChanged(m_deleteAfterCount); } void Feed::setDeleteAfterType(int type) { m_deleteAfterType = type; Q_EMIT deleteAfterTypeChanged(m_deleteAfterType); } void Feed::setLastUpdated(const QDateTime &lastUpdated) { m_lastUpdated = lastUpdated; Q_EMIT lastUpdatedChanged(m_lastUpdated); } void Feed::setNotify(bool notify) { m_notify = notify; Q_EMIT notifyChanged(m_notify); } void Feed::setRefreshing(bool refreshing) { m_refreshing = refreshing; Q_EMIT refreshingChanged(m_refreshing); } void Feed::setErrorId(int errorId) { m_errorId = errorId; Q_EMIT errorIdChanged(m_errorId); } void Feed::setErrorString(const QString &errorString) { m_errorString = errorString; Q_EMIT errorStringChanged(m_errorString); } void Feed::refresh() { Fetcher::instance().fetch(m_url); } void Feed::remove() { // Delete Authors QSqlQuery query; if (query.prepare(QStringLiteral("DELETE FROM Authors WHERE feed=:feed;"))) { query.bindValue(QStringLiteral(":feed"), m_url); Database::instance().execute(query); } // Delete Entries if (query.prepare(QStringLiteral("DELETE FROM Entries WHERE feed=:feed;"))) { query.bindValue(QStringLiteral(":feed"), m_url); Database::instance().execute(query); } // TODO Delete Enclosures // Delete Feed if (query.prepare(QStringLiteral("DELETE FROM Feeds WHERE url=:url;"))) { query.bindValue(QStringLiteral(":url"), m_url); Database::instance().execute(query); } } alligator-23.08.5/src/feed.h000066400000000000000000000105231457614656200155330ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #pragma once #include #include #include "author.h" class EntriesModel; class Feed : public QObject { Q_OBJECT Q_PROPERTY(QString url READ url CONSTANT) Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) Q_PROPERTY(QString displayName READ displayName WRITE setDisplayName NOTIFY displayNameChanged) Q_PROPERTY(QString image READ image WRITE setImage NOTIFY imageChanged) Q_PROPERTY(QString link READ link WRITE setLink NOTIFY linkChanged) Q_PROPERTY(QString description READ description WRITE setDescription NOTIFY descriptionChanged) Q_PROPERTY(QString groupName READ groupName WRITE setGroupName NOTIFY groupNameChanged) Q_PROPERTY(QVector authors READ authors WRITE setAuthors NOTIFY authorsChanged) Q_PROPERTY(bool refreshing READ refreshing WRITE setRefreshing NOTIFY refreshingChanged) Q_PROPERTY(int deleteAfterCount READ deleteAfterCount WRITE setDeleteAfterCount NOTIFY deleteAfterCountChanged) Q_PROPERTY(int deleteAfterType READ deleteAfterType WRITE setDeleteAfterType NOTIFY deleteAfterTypeChanged) Q_PROPERTY(QDateTime subscribed READ subscribed CONSTANT) Q_PROPERTY(QDateTime lastUpdated READ lastUpdated WRITE setLastUpdated NOTIFY lastUpdatedChanged) Q_PROPERTY(bool notify READ notify WRITE setNotify NOTIFY notifyChanged) Q_PROPERTY(int entryCount READ entryCount NOTIFY entryCountChanged) Q_PROPERTY(int unreadEntryCount READ unreadEntryCount NOTIFY unreadEntryCountChanged) Q_PROPERTY(int errorId READ errorId WRITE setErrorId NOTIFY errorIdChanged) Q_PROPERTY(QString errorString READ errorString WRITE setErrorString NOTIFY errorStringChanged) Q_PROPERTY(EntriesModel *entries MEMBER m_entries CONSTANT) public: explicit Feed(int index); ~Feed(); QString url() const; QString name() const; QString displayName() const; QString image() const; QString link() const; QString description() const; QString groupName() const; QVector authors() const; int deleteAfterCount() const; int deleteAfterType() const; QDateTime subscribed() const; QDateTime lastUpdated() const; bool notify() const; int entryCount() const; int unreadEntryCount() const; bool read() const; int errorId() const; QString errorString() const; bool refreshing() const; void setName(const QString &name); void setDisplayName(const QString &displayName); void setImage(const QString &image); void setLink(const QString &link); void setDescription(const QString &description); void setGroupName(const QString &groupName); void setAuthors(const QVector &authors); void setDeleteAfterCount(int count); void setDeleteAfterType(int type); void setLastUpdated(const QDateTime &lastUpdated); void setNotify(bool notify); void setRefreshing(bool refreshing); void setErrorId(int errorId); void setErrorString(const QString &errorString); Q_INVOKABLE void refresh(); void remove(); Q_SIGNALS: void nameChanged(const QString &name); void displayNameChanged(const QString &displayName); void imageChanged(const QString &image); void linkChanged(const QString &link); void descriptionChanged(const QString &description); void groupNameChanged(const QString &groupName); void authorsChanged(const QVector &authors); void deleteAfterCountChanged(int count); void deleteAfterTypeChanged(int type); void lastUpdatedChanged(const QDateTime &lastUpdated); void notifyChanged(bool notify); void entryCountChanged(); void unreadEntryCountChanged(); void errorIdChanged(int &errorId); void errorStringChanged(const QString &errorString); void refreshingChanged(bool refreshing); private: QString m_url; QString m_name; QString m_display_name; QString m_image; QString m_link; QString m_description; QString m_group_name; QVector m_authors; int m_deleteAfterCount; int m_deleteAfterType; QDateTime m_subscribed; QDateTime m_lastUpdated; bool m_notify; int m_errorId; QString m_errorString; EntriesModel *m_entries; bool m_refreshing = false; }; alligator-23.08.5/src/feedgroupsmodel.cpp000066400000000000000000000035601457614656200203520ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: 2021 Dimitris Kardarakos * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "feedgroupsmodel.h" #include "database.h" #include FeedGroupsModel::FeedGroupsModel(QObject *parent) : QAbstractListModel{parent} , m_feed_groups{} { loadFromDatabase(); connect(&Database::instance(), &Database::feedGroupsUpdated, [this]() { loadFromDatabase(); }); connect(&Database::instance(), &Database::feedGroupRemoved, [this]() { loadFromDatabase(); }); } QHash FeedGroupsModel::roleNames() const { return {{GroupName, "name"}, {GroupDescription, "description"}, {IsDefault, "isDefault"}}; } int FeedGroupsModel::rowCount(const QModelIndex &parent) const { if (parent.isValid()) { return 0; } return m_feed_groups.count(); } QVariant FeedGroupsModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) { return QVariant(); } auto row = index.row(); switch (role) { case GroupName: { return m_feed_groups.at(row).name; } case GroupDescription: { return m_feed_groups.at(row).description; } case IsDefault: return m_feed_groups.at(row).isDefault; } return QVariant(); } void FeedGroupsModel::loadFromDatabase() { beginResetModel(); m_feed_groups = {}; QSqlQuery q; if (q.prepare(QStringLiteral("SELECT * FROM FeedGroups;"))) { Database::instance().execute(q); while (q.next()) { FeedGroup group{}; group.name = q.value(QStringLiteral("name")).toString(); group.description = q.value(QStringLiteral("description")).toString(); group.isDefault = (q.value(QStringLiteral("defaultGroup")).toInt() == 1); m_feed_groups << group; } } endResetModel(); } alligator-23.08.5/src/feedgroupsmodel.h000066400000000000000000000015661457614656200200230ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: 2021 Dimitris Kardarakos * * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include /** * @brief Data structure to store a single feed group entry * */ struct FeedGroup { QString name; QString description; bool isDefault; }; /** * @brief Model that provides the feed groups * */ class FeedGroupsModel : public QAbstractListModel { Q_OBJECT public: explicit FeedGroupsModel(QObject *parent = nullptr); enum RoleNames { GroupName = Qt::UserRole + 1, GroupDescription, IsDefault }; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; QHash roleNames() const override; int rowCount(const QModelIndex &parent) const override; private: void loadFromDatabase(); QVector m_feed_groups; }; alligator-23.08.5/src/feedsmodel.cpp000066400000000000000000000066611457614656200173020ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #include #include #include #include #include "database.h" #include "feedsmodel.h" #include "fetcher.h" FeedsModel::FeedsModel(QObject *parent) : QAbstractListModel(parent) { connect(&Database::instance(), &Database::feedAdded, this, [this]() { beginInsertRows(QModelIndex(), rowCount(QModelIndex()) - 1, rowCount(QModelIndex()) - 1); endInsertRows(); }); connect( &Fetcher::instance(), &Fetcher::feedDetailsUpdated, this, [this](const QString &url, const QString &name, const QString &image, const QString &link, const QString &description, const QDateTime &lastUpdated) { for (int i = 0; i < m_feeds.length(); i++) { if (m_feeds[i]->url() == url) { m_feeds[i]->setName(name); m_feeds[i]->setImage(image); m_feeds[i]->setLink(link); m_feeds[i]->setDescription(description); m_feeds[i]->setLastUpdated(lastUpdated); Q_EMIT dataChanged(createIndex(i, 0), createIndex(i, 0)); break; } } }); connect(&Database::instance(), &Database::feedDetailsUpdated, [this](const QString &url, const QString &displayName, const QString &groupName) { for (int i = 0; i < m_feeds.length(); i++) { if (m_feeds[i]->url() == url) { m_feeds[i]->setDisplayName(displayName); m_feeds[i]->setGroupName(groupName); Q_EMIT dataChanged(createIndex(i, 0), createIndex(i, 0)); break; } } }); connect(&Database::instance(), &Database::feedGroupRemoved, [this](const QString &groupName) { for (int i = 0; i < m_feeds.length(); i++) { if (m_feeds[i]->groupName() == groupName) { m_feeds[i]->setGroupName(QString()); Q_EMIT dataChanged(createIndex(i, 0), createIndex(i, 0)); break; } } }); } QHash FeedsModel::roleNames() const { QHash roleNames; roleNames[0] = "feed"; return roleNames; } int FeedsModel::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent) QSqlQuery query; query.prepare(QStringLiteral("SELECT COUNT() FROM Feeds;")); Database::instance().execute(query); if (!query.next()) { qWarning() << "Failed to query feed count"; } return query.value(0).toInt(); } QVariant FeedsModel::data(const QModelIndex &index, int role) const { if (role != 0) { return QVariant(); } while (m_feeds.length() <= index.row()) { loadFeed(m_feeds.length()); } return QVariant::fromValue(m_feeds[index.row()]); } void FeedsModel::loadFeed(int index) const { m_feeds += new Feed(index); } void FeedsModel::removeFeed(const QString &url) { for (int i = 0; i < m_feeds.length(); i++) { if (m_feeds[i]->url() == url) { m_feeds[i]->remove(); delete m_feeds[i]; beginRemoveRows(QModelIndex(), i, i); m_feeds.removeAt(i); endRemoveRows(); } } } void FeedsModel::refreshAll() { for (auto &feed : m_feeds) { feed->refresh(); } } alligator-23.08.5/src/feedsmodel.h000066400000000000000000000014211457614656200167340ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #pragma once #include #include #include #include #include "feed.h" class FeedsModel : public QAbstractListModel { Q_OBJECT public: explicit FeedsModel(QObject *parent = nullptr); QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; QHash roleNames() const override; int rowCount(const QModelIndex &parent) const override; Q_INVOKABLE void removeFeed(const QString &url); Q_INVOKABLE void refreshAll(); private: void loadFeed(int index) const; mutable QVector m_feeds; }; alligator-23.08.5/src/feedsproxymodel.cpp000066400000000000000000000031111457614656200203670ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: 2021 Dimitris Kardarakos * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "feedsproxymodel.h" #include "database.h" #include "feed.h" #include "feedsmodel.h" FeedsProxyModel::FeedsProxyModel(QObject *parent) : QSortFilterProxyModel(parent) , m_group_name{} { connect(&Database::instance(), &Database::feedDetailsUpdated, [this]() { invalidate(); }); setSortRole(0); sort(0); } FeedsProxyModel::~FeedsProxyModel() { } void FeedsProxyModel::setGroupName(const QString &name) { if (m_group_name != name) { m_group_name = name; invalidateFilter(); Q_EMIT groupNameChanged(); } } QString FeedsProxyModel::groupName() const { return m_group_name; } bool FeedsProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const { const auto idx = sourceModel()->index(source_row, 0, source_parent); if (!QSortFilterProxyModel::filterAcceptsRow(source_row, source_parent)) { return false; } if (m_group_name.isEmpty()) { return true; } auto feed = idx.data(0).value(); if (feed->groupName() == m_group_name) { return true; } return false; } bool FeedsProxyModel::lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const { if (!sourceModel()) { return false; } const auto leftFeed = source_left.data(0).value(); const auto rightFeed = source_right.data(0).value(); return leftFeed->groupName() < rightFeed->groupName(); } alligator-23.08.5/src/feedsproxymodel.h000066400000000000000000000015031457614656200200370ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: 2021 Dimitris Kardarakos * * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include /** * @brief Filters and sorts FeedsModel * */ class FeedsProxyModel : public QSortFilterProxyModel { Q_OBJECT Q_PROPERTY(QString groupName READ groupName WRITE setGroupName NOTIFY groupNameChanged) public: explicit FeedsProxyModel(QObject *parent = nullptr); ~FeedsProxyModel() override; bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const override; QString groupName() const; void setGroupName(const QString &name); Q_SIGNALS: void groupNameChanged(); private: QString m_group_name; }; alligator-23.08.5/src/fetcher.cpp000066400000000000000000000203051457614656200166020ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #include #include #include #include #include #include #include #include #include #include #include "database.h" #include "fetcher.h" Fetcher::Fetcher() : m_fetchCount(0) { manager = new QNetworkAccessManager(this); manager->setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy); manager->setStrictTransportSecurityEnabled(true); manager->enableStrictTransportSecurityStore(true); } void Fetcher::fetch(const QString &url, const bool markEntriesRead) { qDebug() << "Starting to fetch" << url; Q_EMIT startedFetchingFeed(url); setFetchCount(m_fetchCount + 1); QNetworkRequest request((QUrl(url))); QNetworkReply *reply = get(request); connect(reply, &QNetworkReply::finished, this, [this, url, reply, markEntriesRead]() { setFetchCount(m_fetchCount - 1); if (reply->error()) { qWarning() << "Error fetching feed"; qWarning() << reply->errorString(); Q_EMIT error(url, reply->error(), reply->errorString()); } else { QByteArray data = reply->readAll(); Syndication::DocumentSource document(data, url); Syndication::FeedPtr feed = Syndication::parserCollection()->parse(document, QStringLiteral("Atom")); processFeed(feed, url, markEntriesRead); } delete reply; }); } void Fetcher::fetchAll() { QSqlQuery query; if (query.prepare(QStringLiteral("SELECT url FROM Feeds;"))) { Database::instance().execute(query); while (query.next()) { fetch(query.value(0).toString()); } } } void Fetcher::setFetchCount(int count) { m_fetchCount = count; Q_EMIT refreshingChanged(refreshing()); } void Fetcher::processFeed(Syndication::FeedPtr feed, const QString &url, const bool markEntriesRead) { if (feed.isNull()) { Syndication::ErrorCode errorCode = Syndication::parserCollection()->lastError(); QString errorString = syndicationErrorToString(errorCode); Q_EMIT error(url, errorCode, errorString); return; } QSqlQuery query; if (query.prepare( QStringLiteral("UPDATE Feeds SET name=:name, image=:image, link=:link, description=:description, lastUpdated=:lastUpdated WHERE url=:url;"))) { query.bindValue(QStringLiteral(":name"), feed->title()); query.bindValue(QStringLiteral(":url"), url); query.bindValue(QStringLiteral(":link"), feed->link()); query.bindValue(QStringLiteral(":description"), feed->description()); QDateTime current = QDateTime::currentDateTime(); query.bindValue(QStringLiteral(":lastUpdated"), current.toSecsSinceEpoch()); for (auto &author : feed->authors()) { processAuthor(author, QLatin1String(""), url); } QString imagePath; if (feed->image()->url().startsWith(QStringLiteral("/"))) { imagePath = QUrl(url).adjusted(QUrl::RemovePath).toString() + feed->image()->url(); } else { imagePath = feed->image()->url(); } query.bindValue(QStringLiteral(":image"), imagePath); Database::instance().execute(query); qDebug() << "Updated feed title:" << feed->title(); Q_EMIT feedDetailsUpdated(url, feed->title(), imagePath, feed->link(), feed->description(), current); } for (const auto &entry : feed->items()) { processEntry(entry, url, markEntriesRead); } Q_EMIT feedUpdated(url); } void Fetcher::processEntry(Syndication::ItemPtr entry, const QString &url, const bool markEntriesRead) { qDebug() << "Processing" << entry->title(); QSqlQuery query; if (query.prepare(QStringLiteral("SELECT COUNT (id) FROM Entries WHERE id=:id;"))) { query.bindValue(QStringLiteral(":id"), entry->id()); Database::instance().execute(query); query.next(); if (query.value(0).toInt() != 0) { return; } } if (query.prepare(QStringLiteral("INSERT INTO Entries VALUES (:feed, :id, :title, :content, :created, :updated, :link, :read);"))) { query.bindValue(QStringLiteral(":feed"), url); query.bindValue(QStringLiteral(":id"), entry->id()); query.bindValue(QStringLiteral(":title"), QTextDocumentFragment::fromHtml(entry->title()).toPlainText()); query.bindValue(QStringLiteral(":created"), static_cast(entry->datePublished())); query.bindValue(QStringLiteral(":updated"), static_cast(entry->dateUpdated())); query.bindValue(QStringLiteral(":link"), entry->link()); query.bindValue(QStringLiteral(":read"), markEntriesRead); if (!entry->content().isEmpty()) { query.bindValue(QStringLiteral(":content"), entry->content()); } else { query.bindValue(QStringLiteral(":content"), entry->description()); } Database::instance().execute(query); } for (const auto &author : entry->authors()) { processAuthor(author, entry->id(), url); } for (const auto &enclosure : entry->enclosures()) { processEnclosure(enclosure, entry, url); } } void Fetcher::processAuthor(Syndication::PersonPtr author, const QString &entryId, const QString &url) { QSqlQuery query; if (query.prepare(QStringLiteral("INSERT INTO Authors VALUES(:feed, :id, :name, :uri, :email);"))) { query.bindValue(QStringLiteral(":feed"), url); query.bindValue(QStringLiteral(":id"), entryId); query.bindValue(QStringLiteral(":name"), author->name()); query.bindValue(QStringLiteral(":uri"), author->uri()); query.bindValue(QStringLiteral(":email"), author->email()); Database::instance().execute(query); } } void Fetcher::processEnclosure(Syndication::EnclosurePtr enclosure, Syndication::ItemPtr entry, const QString &feedUrl) { QSqlQuery query; if (query.prepare(QStringLiteral("INSERT INTO Enclosures VALUES (:feed, :id, :duration, :size, :title, :type, :url);"))) { query.bindValue(QStringLiteral(":feed"), feedUrl); query.bindValue(QStringLiteral(":id"), entry->id()); query.bindValue(QStringLiteral(":duration"), enclosure->duration()); query.bindValue(QStringLiteral(":size"), enclosure->length()); query.bindValue(QStringLiteral(":title"), enclosure->title()); query.bindValue(QStringLiteral(":type"), enclosure->type()); query.bindValue(QStringLiteral(":url"), enclosure->url()); Database::instance().execute(query); } } QString Fetcher::image(const QString &url) { QString path = filePath(url); if (QFileInfo::exists(path)) { return path; } download(url); return QLatin1String(""); } void Fetcher::download(const QString &url) { QNetworkRequest request((QUrl(url))); QNetworkReply *reply = get(request); connect(reply, &QNetworkReply::finished, this, [this, url, reply]() { QByteArray data = reply->readAll(); QFile file(filePath(url)); file.open(QIODevice::WriteOnly); file.write(data); file.close(); Q_EMIT imageDownloadFinished(url); delete reply; }); } void Fetcher::removeImage(const QString &url) { qDebug() << filePath(url); QFile(filePath(url)).remove(); } QString Fetcher::filePath(const QString &url) { return QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + QStringLiteral("/") + QString::fromStdString(QCryptographicHash::hash(url.toUtf8(), QCryptographicHash::Md5).toHex().toStdString()); } QNetworkReply *Fetcher::get(QNetworkRequest &request) { request.setRawHeader("User-Agent", "Alligator/0.1; Syndication"); return manager->get(request); } QString Fetcher::syndicationErrorToString(Syndication::ErrorCode errorCode) { switch (errorCode) { case Syndication::InvalidXml: return i18n("Invalid XML"); case Syndication::XmlNotAccepted: return i18n("No parser accepted the XML"); default: return i18n("Error while parsing feed"); } } alligator-23.08.5/src/fetcher.h000066400000000000000000000041511457614656200162500ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #pragma once #include #include #include #include class Fetcher : public QObject { Q_OBJECT Q_PROPERTY(bool refreshing READ refreshing NOTIFY refreshingChanged) public: static Fetcher &instance() { static Fetcher _instance; return _instance; } Q_INVOKABLE void fetch(const QString &url, const bool markEntriesRead = false); Q_INVOKABLE void fetchAll(); Q_INVOKABLE QString image(const QString &url); void removeImage(const QString &url); Q_INVOKABLE void download(const QString &url); QNetworkReply *get(QNetworkRequest &request); private: Fetcher(); QString filePath(const QString &url); void processFeed(Syndication::FeedPtr feed, const QString &url, const bool markEntriesRead = false); void processEntry(Syndication::ItemPtr entry, const QString &url, const bool markEntriesRead = false); void processAuthor(Syndication::PersonPtr author, const QString &entryId, const QString &url); void processEnclosure(Syndication::EnclosurePtr enclosure, Syndication::ItemPtr entry, const QString &feedUrl); QString syndicationErrorToString(Syndication::ErrorCode errorCode); bool refreshing() const { return m_fetchCount > 0; }; void setFetchCount(int count); int m_fetchCount; QNetworkAccessManager *manager; Q_SIGNALS: void startedFetchingFeed(const QString &url); void feedUpdated(const QString &url); void feedDetailsUpdated(const QString &url, const QString &name, const QString &image, const QString &link, const QString &description, const QDateTime &lastUpdated); void error(const QString &url, int errorId, const QString &errorString); void imageDownloadFinished(const QString &url); void refreshingChanged(bool refreshing); }; alligator-23.08.5/src/main.cpp000066400000000000000000000104521457614656200161100ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #include #include #include #include #include #include #include #include #ifdef Q_OS_ANDROID #include #else #include #endif #include #include #include #include "alligator-version.h" #include "alligatorsettings.h" #include "database.h" #include "entriesmodel.h" #include "entriesproxymodel.h" #include "feedgroupsmodel.h" #include "feedsmodel.h" #include "feedsproxymodel.h" #include "fetcher.h" #ifdef Q_OS_WINDOWS #include #endif #ifdef Q_OS_ANDROID Q_DECL_EXPORT #endif int main(int argc, char *argv[]) { #ifdef Q_OS_ANDROID QGuiApplication app(argc, argv); QQuickStyle::setStyle(QStringLiteral("org.kde.breeze")); #else QApplication app(argc, argv); if (qEnvironmentVariableIsEmpty("QT_QUICK_CONTROLS_STYLE")) { QQuickStyle::setStyle(QStringLiteral("org.kde.desktop")); } #endif #ifdef Q_OS_WINDOWS if (AttachConsole(ATTACH_PARENT_PROCESS)) { FILE *outFile = freopen("CONOUT$", "w", stdout); if (!outFile) qWarning() << "Failed to reopen stdout"; FILE *errFile = freopen("CONOUT$", "w", stderr); if (!errFile) qWarning() << "Failed to reopen stderr"; } QApplication::setStyle(QStringLiteral("breeze")); auto font = app.font(); font.setPointSize(10); app.setFont(font); #endif KLocalizedString::setApplicationDomain("alligator"); QCoreApplication::setOrganizationName(QStringLiteral("KDE")); QCoreApplication::setOrganizationDomain(QStringLiteral("kde.org")); QCoreApplication::setApplicationName(QStringLiteral("Alligator")); KAboutData about(QStringLiteral("alligator"), i18n("Alligator"), QStringLiteral(ALLIGATOR_VERSION_STRING), i18n("Feed Reader"), KAboutLicense::GPL, i18n("© 2020-2022 KDE Community")); about.addAuthor(i18n("Tobias Fella"), QString(), QStringLiteral("fella@posteo.de"), QStringLiteral("https://tobiasfella.de")); KAboutData::setApplicationData(about); qmlRegisterType("org.kde.alligator", 1, 0, "FeedsModel"); qmlRegisterType("org.kde.alligator", 1, 0, "FeedGroupsModel"); qmlRegisterType("org.kde.alligator", 1, 0, "FeedsProxyModel"); qmlRegisterType("org.kde.alligator", 1, 0, "EntriesModel"); qmlRegisterType("org.kde.alligator", 1, 0, "EntriesProxyModel"); qmlRegisterSingletonType("org.kde.alligator", 1, 0, "About", [](QQmlEngine *engine, QJSEngine *) -> QJSValue { return engine->toScriptValue(KAboutData::applicationData()); }); AlligatorSettings settings; qmlRegisterSingletonInstance("org.kde.alligator", 1, 0, "Config", &settings); qmlRegisterSingletonInstance("org.kde.alligator", 1, 0, "Fetcher", &Fetcher::instance()); qmlRegisterSingletonInstance("org.kde.alligator", 1, 0, "Database", &Database::instance()); QQmlApplicationEngine engine; engine.rootContext()->setContextObject(new KLocalizedContext(&engine)); QCommandLineParser parser; parser.setApplicationDescription(i18n("RSS/Atom Feed Reader")); QCommandLineOption addFeedOption(QStringList() << QStringLiteral("a") << QStringLiteral("addfeed"), i18n("Adds a new feed to database."), i18n("feed URL"), QStringLiteral("none")); parser.addOption(addFeedOption); about.setupCommandLine(&parser); parser.process(app); QString feedURL = parser.value(addFeedOption); if (feedURL != QStringLiteral("none")) Database::instance().addFeed(feedURL); about.processCommandLine(&parser); QObject::connect(&app, &QCoreApplication::aboutToQuit, &settings, &AlligatorSettings::save); Database::instance(); engine.load(QUrl(QStringLiteral("qrc:///main.qml"))); if (engine.rootObjects().isEmpty()) { return -1; } return app.exec(); } alligator-23.08.5/src/qml/000077500000000000000000000000001457614656200152475ustar00rootroot00000000000000alligator-23.08.5/src/qml/AddFeedDialog.qml000066400000000000000000000021311457614656200203530ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import QtQuick.Layouts 1.14 import org.kde.kirigami 2.20 as Kirigami import org.kde.alligator 1.0 Kirigami.Dialog { id: addSheet title: i18n("Add Feed") standardButtons: Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel padding: Kirigami.Units.largeSpacing // bottomPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing preferredWidth: Kirigami.Units.gridUnit * 20 onAccepted: { Database.addFeed(urlField.text, "", markFeedAsRead.checked) } ColumnLayout { Controls.Label { text: i18n("Url:") } Controls.TextField { id: urlField Layout.fillWidth: true text: "https://planet.kde.org/global/atom.xml/" } Controls.CheckBox { id: markFeedAsRead checked: false text: i18n("Mark entries as read") } } } alligator-23.08.5/src/qml/AlligatorGlobalDrawer.qml000066400000000000000000000121201457614656200221620ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2022 Devin Lin * SPDX-FileCopyrightText: 2021 Dimitris Kardarakos * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ import QtQuick 2.14 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.14 as Controls import org.kde.kirigami 2.12 as Kirigami import org.kde.alligator 1.0 as Alligator Kirigami.GlobalDrawer { id: root property var entriesPage property var feedsPage // updated by allFeedsItem property real iconSizing: 0 property real listItemPadding: 0 modal: applicationWindow().width < Kirigami.Units.gridUnit * 40 height: applicationWindow().height width: applicationWindow().sidebarCollapsed ? (iconSizing + listItemPadding * 2) : Kirigami.Units.gridUnit * 15 Behavior on width { NumberAnimation { easing.type: Easing.InOutExpo duration: Kirigami.Units.veryLongDuration } } leftPadding: 0 rightPadding: 0 topPadding: 0 bottomPadding: 0 Kirigami.Theme.colorSet: Kirigami.Theme.View Kirigami.Theme.inherit: false contentItem: ColumnLayout { spacing: 0 Controls.ToolBar { Layout.fillWidth: true implicitHeight: applicationWindow().pageStack.globalToolBar.preferredHeight Item { anchors.fill: parent Kirigami.Heading { level: 1 text: i18n("Alligator") anchors.left: parent.left anchors.leftMargin: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing anchors.verticalCenter: parent.verticalCenter opacity: applicationWindow().sidebarCollapsed ? 0 : 1 Behavior on opacity { NumberAnimation { easing.type: Easing.InOutQuad duration: Kirigami.Units.shortDuration } } } } } ListView { Layout.fillHeight: true Layout.fillWidth: true clip: true // stop list highlight currentIndex: -1 onCurrentIndexChanged: { if (currentIndex != -1) { currentIndex = -1; } } header: Kirigami.BasicListItem { id: allFeedsItem text: i18n("All Feeds") icon: "rss" onIconSizeChanged: root.iconSizing = iconSize onLeadingPaddingChanged: root.listItemPadding = leadingPadding onClicked: { pageStack.clear() pageStack.push(root.entriesPage) } } section.property: "feed.groupName" section.criteria: ViewSection.FullString section.delegate: Kirigami.ListSectionHeader { label: section opacity: applicationWindow().sidebarCollapsed ? 0 : 1 Behavior on opacity { NumberAnimation { easing.type: Easing.InOutQuad duration: Kirigami.Units.shortDuration } } } model: Alligator.FeedsProxyModel { id: proxyModel groupName: "" sourceModel: feedsModel } Alligator.FeedsModel { id: feedsModel } delegate: Kirigami.BasicListItem { text: model.feed.displayName || model.feed.name icon: model.feed.refreshing ? "view-refresh" : model.feed.image === "" ? "rss" : Alligator.Fetcher.image(model.feed.image) onClicked: { pageStack.layers.clear(); pageStack.clear(); pageStack.push("qrc:/EntryListPage.qml", {"feed": model.feed}) } } } Kirigami.Separator { Layout.fillWidth: true } Kirigami.BasicListItem { Layout.fillWidth: true text: i18n("Settings") icon: "settings-configure" onClicked: { pageStack.layers.clear(); pageStack.clear(); pageStack.push("qrc:/SettingsPage.qml"); } } Kirigami.BasicListItem { Layout.fillWidth: true text: i18n("Manage Feeds") icon: "feed-subscribe" onClicked: { pageStack.layers.clear(); pageStack.clear(); pageStack.insertPage(0, root.feedsPage, {}); } } Kirigami.BasicListItem { Layout.fillWidth: true text: i18n("About") icon: "documentinfo" onClicked: { pageStack.layers.clear(); pageStack.clear(); pageStack.push(aboutPage); } } } } alligator-23.08.5/src/qml/EditFeedDialog.qml000066400000000000000000000026121457614656200205540ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: 2021 Dimitris Kardarakos * * SPDX-License-Identifier: GPL-3.0-or-later */ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import QtQuick.Layouts 1.14 import org.kde.kirigami 2.20 as Kirigami import org.kde.alligator 1.0 as Alligator Kirigami.Dialog { id: root title: i18n("Edit Feed") property var feed onFeedChanged: groupCombo.currentIndex = (root.feed !== undefined) ? groupCombo.indexOfValue(root.feed.groupName) : groupCombo.indexOfValue("") standardButtons: Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel padding: Kirigami.Units.largeSpacing bottomPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing preferredWidth: Kirigami.Units.gridUnit * 20 onAccepted: { Alligator.Database.editFeed(feed.url, displayName.text, groupCombo.currentValue); } Kirigami.FormLayout { Controls.TextField { id: displayName Layout.fillWidth: true text: (root.feed !== undefined) ? (feed.displayName || feed.name) : "" Kirigami.FormData.label: i18n("Display Name:") } Controls.ComboBox { id: groupCombo Layout.fillWidth: true model: Alligator.FeedGroupsModel {} textRole: "name" valueRole: "name" Kirigami.FormData.label: i18n("Group:") } } } alligator-23.08.5/src/qml/EntryListDelegate.qml000066400000000000000000000033271457614656200213570ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * SPDX-FileCopyrightText: 2022 Devin Lin * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import QtQuick.Layouts 1.14 import org.kde.kirigami 2.12 as Kirigami import org.kde.alligator 1.0 Kirigami.AbstractListItem { property string feedTitle onClicked: { while(pageStack.depth > 2) { pageStack.pop() } pageStack.push("qrc:/EntryPage.qml", {"entry": model.entry, "feedTitle" : feedTitle}) } separatorVisible: true activeBackgroundColor: Qt.rgba(Kirigami.Theme.highlightColor.r, Kirigami.Theme.highlightColor.g, Kirigami.Theme.highlightColor.b, 0.5) topPadding: Kirigami.Units.largeSpacing bottomPadding: Kirigami.Units.largeSpacing contentItem: ColumnLayout { spacing: Kirigami.Units.smallSpacing * 2 Controls.Label { Layout.fillWidth: true text: model.entry.title font.pointSize: Math.round(Kirigami.Theme.defaultFont.pointSize * 1) font.weight: Font.Medium wrapMode: Text.Wrap elide: Text.ElideRight maximumLineCount: 3 opacity: model.entry.read ? 0.7 : 1 } Controls.Label { Layout.fillWidth: true elide: Text.ElideRight font.pointSize: Kirigami.Theme.smallFont.pointSize opacity: 0.9 text: model.entry.updated.toLocaleString(Qt.locale(), Locale.ShortFormat) + (model.entry.authors.length === 0 ? "" : " " + i18nc("by ", "by") + " " + model.entry.authors[0].name) } } } alligator-23.08.5/src/qml/EntryListPage.qml000066400000000000000000000104631457614656200205200ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import QtQuick.Layouts 1.14 import org.kde.kirigami 2.20 as Kirigami import org.kde.alligator 1.0 Kirigami.ScrollablePage { id: page property var feed property bool onlyUnread: false supportsRefreshing: true onRefreshingChanged: if(refreshing) { if (feed === undefined) { Fetcher.fetchAll() } else { feed.refresh() } } Connections { target: feed !== undefined ? feed : Fetcher function onRefreshingChanged(refreshing) { if(!refreshing) page.refreshing = refreshing } } contextualActions: [ Kirigami.Action { visible: feed !== undefined iconName: "help-about-symbolic" text: i18n("Details") onTriggered: { while(pageStack.depth > 2) pageStack.pop() pageStack.push("qrc:/FeedDetailsPage.qml", {"feed": feed}) } } ] actions.main: Kirigami.Action { iconName: "view-refresh" text: i18n("Refresh") onTriggered: page.refreshing = true visible: !Kirigami.Settings.isMobile } titleDelegate: RowLayout { spacing: Kirigami.Units.smallSpacing Controls.ToolButton { visible: !applicationWindow().globalDrawer.modal text: applicationWindow().sidebarCollapsed ? i18n("Expand sidebar") : i18n("Collapse sidebar") icon.name: applicationWindow().sidebarCollapsed ? "sidebar-expand" : "sidebar-collapse" display: Controls.ToolButton.IconOnly onClicked: { applicationWindow().sidebarCollapsed = !applicationWindow().sidebarCollapsed Config.sidebarCollapsed = applicationWindow().sidebarCollapsed } } Kirigami.Heading { Layout.fillWidth: true text: feed === undefined ? i18n("All Entries") : feed.displayName || feed.name } } Kirigami.PromptDialog { // Show this dialog only if we can not show the error in the placeholder. // This is eg. the case if the feed worked so far, but refreshing fails for some reason visible: entryList.count !== 0 && feed !== undefined && feed.errorId !== 0 title: i18n("Error") subtitle: i18n("Error (%1): %2", feed ? feed.errorId : "", feed ? feed.errorString : "") } Kirigami.PlaceholderMessage { visible: entryList.count === 0 width: Kirigami.Units.gridUnit * 20 anchors.centerIn: parent text: if(feed === undefined || feed.errorId === 0) { root.onlyUnread ? i18n("No unread entries available") : i18n("No entries available") } else { i18n("Error (%1): %2", feed.errorId, feed.errorString) } icon.name: feed === undefined || feed.errorId === 0 ? "" : "data-error" } ListView { id: entryList visible: count !== 0 model: proxyModel // stop list highlight currentIndex: -1 delegate: EntryListDelegate { feedTitle: (feed === undefined ? "" : feed.displayName) || "" } } EntriesProxyModel { id: proxyModel onlyUnread: page.onlyUnread sourceModel: page.feed === undefined ? allEntriesModel : page.feed.entries } EntriesModel { id: allEntriesModel } footer: ColumnLayout { spacing: 0 Kirigami.Separator { Layout.fillWidth: true } Kirigami.NavigationTabBar { Layout.fillWidth: true shadow: false actions: [ Kirigami.Action { iconName: "mail-read" text: i18n("All") checked: !page.onlyUnread onTriggered: page.onlyUnread = false }, Kirigami.Action { iconName: "mail-mark-unread" text: i18n("Unread") checked: page.onlyUnread onTriggered: page.onlyUnread = true; } ] } } } alligator-23.08.5/src/qml/EntryPage.qml000066400000000000000000000024371457614656200176660ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import QtQuick.Layouts 1.14 import org.kde.kirigami 2.12 as Kirigami import org.kde.alligator 1.0 Kirigami.ScrollablePage { id: page property QtObject entry property string feedTitle title: feedTitle ColumnLayout { Kirigami.Heading { text: entry.title wrapMode: Text.WordWrap Layout.fillWidth: true } Controls.Label { text: page.entry.content baseUrl: page.entry.baseUrl textFormat: Text.RichText wrapMode: Text.WordWrap Layout.fillWidth: true onLinkActivated: page.entry.openLink(link) onWidthChanged: text = entry.adjustedContent(width, font.pixelSize) font.pointSize: !(Config.articleFontUseSystem) ? Config.articleFontSize : Kirigami.Units.fontMetrics.font.pointSize } } actions.main: Kirigami.Action { text: i18n("Open in Browser") icon.name: "globe" onTriggered: Qt.openUrlExternally(entry.link) } Component.onDestruction: page.entry.read = true } alligator-23.08.5/src/qml/FeedDetailsPage.qml000066400000000000000000000030041457614656200207250ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import QtQuick.Layouts 1.14 import org.kde.kirigami 2.12 as Kirigami import org.kde.alligator 1.0 Kirigami.ScrollablePage { id: detailsPage property QtObject feed; title: i18nc(" - Details", "%1 - Details", feed.displayName || feed.name) ColumnLayout { Kirigami.Icon { source: Fetcher.image(feed.image) height: 200 width: height } Kirigami.Heading { text: feed.displayName || feed.name } Kirigami.Heading { text: feed.description; level: 3 } Controls.Label { text: i18nc("by ", "by %1", feed.authors[0].name) visible: feed.authors.length !== 0 } Controls.Label { text: "%1".arg(feed.link) onLinkActivated: Qt.openUrlExternally(link) } Controls.Label { text: i18n("Subscribed since: %1", feed.subscribed.toLocaleString(Qt.locale(), Locale.ShortFormat)) } Controls.Label { text: i18n("last updated: %1", feed.lastUpdated.toLocaleString(Qt.locale(), Locale.ShortFormat)) } Controls.Label { text: i18n("%1 posts, %2 unread", feed.entryCount, feed.unreadEntryCount) } } } alligator-23.08.5/src/qml/FeedGroupDialog.qml000066400000000000000000000022631457614656200207650ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: 2021 Dimitris Kardarakos * * SPDX-License-Identifier: GPL-3.0-or-later */ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import QtQuick.Layouts 1.14 import org.kde.kirigami 2.20 as Kirigami import org.kde.alligator 1.0 as Alligator Kirigami.Dialog { id: root property var groupsModel function clearFields() { name.text = ""; desc.text = ""; } title: i18n("Feed Group") standardButtons: Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel padding: Kirigami.Units.largeSpacing bottomPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing preferredWidth: Kirigami.Units.gridUnit * 20 onAccepted: { Alligator.Database.addFeedGroup(name.text, desc.text); clearFields(); } onRejected: { clearFields(); } Kirigami.FormLayout { Controls.TextField { id: name Layout.fillWidth: true Kirigami.FormData.label: i18n("Name:") } Controls.TextField { id: desc Layout.fillWidth: true Kirigami.FormData.label: i18n("Description:") } } } alligator-23.08.5/src/qml/FeedListDelegate.qml000066400000000000000000000030241457614656200211130ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import QtQuick.Layouts 1.14 import org.kde.kirigami 2.12 as Kirigami import org.kde.alligator 1.0 Kirigami.BasicListItem { signal editFeed(var feedObj) text: model.feed.displayName || model.feed.name icon: model.feed.refreshing ? "view-refresh" : model.feed.image === "" ? "rss" : Fetcher.image(model.feed.image) subtitle: i18np("%1 unread entry", "%1 unread entries", model.feed.unreadEntryCount) activeBackgroundColor: "transparent" activeTextColor: Kirigami.Theme.textColor trailing: RowLayout { Controls.ToolButton { icon.name: "delete" display: Controls.AbstractButton.IconOnly text: i18nc("'Feed' is an rss feed", "Delete this Feed") onClicked: { if(pageStack.depth > 1 && model.feed.url === lastFeed) pageStack.pop() feedsModel.removeFeed(model.feed.url) } Controls.ToolTip { text: parent.text } } Controls.ToolButton { icon.name: "editor" display: Controls.AbstractButton.IconOnly text: i18nc("'Feed' is an rss feed", "Edit this Feed") onClicked: editFeed(model.feed) Controls.ToolTip { text: parent.text } } } } alligator-23.08.5/src/qml/FeedListPage.qml000066400000000000000000000064201457614656200202600ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import Qt.labs.platform 1.1 import QtQuick.Layouts 1.14 import org.kde.kirigami 2.12 as Kirigami import org.kde.alligator 1.0 Kirigami.ScrollablePage { id: root title: i18nc("'Feeds' as in 'RSS Feeds'", "Manage Feeds") supportsRefreshing: true onRefreshingChanged: if(refreshing) { Fetcher.fetchAll() refreshing = false } contextualActions: [ Kirigami.Action { text: i18n("Refresh All Feeds") iconName: "view-refresh" onTriggered: refreshing = true visible: !Kirigami.Settings.isMobile }, Kirigami.Action { text: i18n("Manage Feed Groups") iconName: "edit-group" onTriggered: applicationWindow().pageStack.layers.push(groupsList) }, Kirigami.Action { text: i18n("Import Feeds…") iconName: "document-import" onTriggered: importDialog.open() }, Kirigami.Action { text: i18n("Export Feeds…") iconName: "document-export" onTriggered: exportDialog.open() } ] Component { id: groupsList GroupsListPage { feedGroupsModel: FeedGroupsModel { id: groupsModel } } } AddFeedDialog { id: addDialog } EditFeedDialog { id: editDialog } actions.main: Kirigami.Action { text: i18n("Add Feed…") iconName: "list-add" onTriggered: { addDialog.open() } } Kirigami.PlaceholderMessage { visible: feedList.count === 0 width: Kirigami.Units.gridUnit * 20 icon.name: "rss" anchors.centerIn: parent text: i18n("No feeds added yet") } ListView { id: feedList currentIndex: -1 anchors.fill: parent model: FeedsProxyModel { id: proxyModel groupName: "" sourceModel: feedsModel } delegate: FeedListDelegate { onEditFeed: { editDialog.feed = feedObj editDialog.open() } } FeedsModel { id: feedsModel } section { property: "feed.groupName" criteria: ViewSection.FullString delegate: Kirigami.ListSectionHeader { label: section } } } FileDialog { id: importDialog title: i18n("Import Feeds") folder: StandardPaths.writableLocation(StandardPaths.HomeLocation) nameFilters: [i18n("All Files (*)"), i18n("XML Files (*.xml)"), i18n("OPML Files (*.opml)")] onAccepted: Database.importFeeds(file) } FileDialog { id: exportDialog title: i18n("Export Feeds") folder: StandardPaths.writableLocation(StandardPaths.HomeLocation) nameFilters: [i18n("All Files")] onAccepted: Database.exportFeeds(file) fileMode: FileDialog.SaveFile } Component.onCompleted: Fetcher.fetchAll() } alligator-23.08.5/src/qml/GroupsListPage.qml000066400000000000000000000045151457614656200206770ustar00rootroot00000000000000/* * SPDX-FileCopyrightText: 2021 Dimitris Kardarakos * * SPDX-License-Identifier: GPL-3.0-or-later */ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import QtQuick.Layouts 1.14 import org.kde.kirigami 2.12 as Kirigami import org.kde.alligator 1.0 as Alligator Kirigami.ScrollablePage { id: root property var feedGroupsModel title: i18n("Groups") globalToolBarStyle: Kirigami.ApplicationHeaderStyle.ToolBar contextualActions: [ Kirigami.Action { iconName: "list-add" text: i18n("Add Group…") onTriggered: feedGroupDialog.open() } ] ListView { id: groupsListView model: feedGroupsModel currentIndex: -1 delegate: Kirigami.SwipeListItem { font.bold: model.isDefault activeBackgroundColor: "transparent" activeTextColor: Kirigami.Theme.textColor contentItem: ColumnLayout { Controls.Label { text: model.name wrapMode: Text.WordWrap } Controls.Label { text: model.description font: Kirigami.Theme.smallFont wrapMode: Text.WordWrap } } actions: [ Kirigami.Action { text: i18n("Remove") iconName: "delete" enabled: !model.isDefault onTriggered: Alligator.Database.removeFeedGroup(model.name) }, Kirigami.Action { icon.name: "emblem-default-symbolic" text: i18n("Set as Default") enabled: !model.isDefault onTriggered: Alligator.Database.setDefaultGroup(model.name) } ] } Kirigami.PlaceholderMessage { anchors.centerIn: parent text: i18n("No groups created yet") visible: groupsListView.count === 0 helpfulAction: Kirigami.Action { icon.name: "list-add" text: i18n("Add Group") onTriggered: feedGroupDialog.open() } } } FeedGroupDialog { id: feedGroupDialog groupsModel: feedGroupsModel } } alligator-23.08.5/src/qml/SettingsPage.qml000066400000000000000000000035061457614656200203630ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import QtQuick.Layouts 1.14 import org.kde.kirigami 2.12 as Kirigami import org.kde.alligator 1.0 Kirigami.ScrollablePage { title: i18n("Settings") Kirigami.FormLayout { Kirigami.Heading { Kirigami.FormData.isSection: true text: i18n("Article List") } RowLayout { Kirigami.FormData.label: i18n("Delete after:") Controls.SpinBox { id: deleteAfterCount value: Config.deleteAfterCount enabled: deleteAfterType.currentIndex !== 0 onValueModified: Config.deleteAfterCount = value } Controls.ComboBox { id: deleteAfterType currentIndex: Config.deleteAfterType model: [i18n("Never"), i18n("Articles"), i18n("Days"), i18n("Weeks"), i18n("Months")] onActivated: Config.deleteAfterType = index } } Kirigami.Heading { Kirigami.FormData.isSection: true text: i18n("Article") } Controls.SpinBox { id: articleFontSizeSpinBox enabled: !useSystemFontCheckBox.checked value: Config.articleFontSize Kirigami.FormData.label: i18n("Font size:") from: 6 to: 20 onValueModified: Config.articleFontSize = value } Controls.CheckBox { id: useSystemFontCheckBox checked: Config.articleFontUseSystem text: i18n("Use system default") onToggled: Config.articleFontUseSystem = checked } } } alligator-23.08.5/src/qml/main.qml000066400000000000000000000021651457614656200167120ustar00rootroot00000000000000/** * SPDX-FileCopyrightText: 2020 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import org.kde.kirigami 2.12 as Kirigami import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.alligator 1.0 Kirigami.ApplicationWindow { id: root title: "Alligator" property bool sidebarCollapsed: Config.sidebarCollapsed pageStack.initialPage: entryList pageStack.globalToolBar.style: Kirigami.ApplicationHeaderStyle.ToolBar pageStack.globalToolBar.showNavigationButtons: Kirigami.ApplicationHeaderStyle.ShowBackButton globalDrawer: AlligatorGlobalDrawer { entriesPage: entryList feedsPage: feedList } Component { id: aboutPage MobileForm.AboutPage { aboutData: About } } contextDrawer: Kirigami.ContextDrawer { id: contextDrawer } Component { id: entryList EntryListPage {} } Component { id: feedList FeedListPage {} } } alligator-23.08.5/src/resources.qrc000077500000000000000000000020651457614656200172050ustar00rootroot00000000000000 qml/main.qml qml/EntryListPage.qml qml/FeedListPage.qml qml/EntryPage.qml qml/SettingsPage.qml qml/FeedDetailsPage.qml qml/EntryListDelegate.qml qml/AddFeedDialog.qml qml/FeedListDelegate.qml qml/EditFeedDialog.qml qml/GroupsListPage.qml qml/AlligatorGlobalDrawer.qml qml/FeedGroupDialog.qml