[
  {
    "path": ".github/FUNDING.yml",
    "content": "github: [zeshuaro]\nko_fi: zeshuaro\nliberapay: zeshuaro\npatreon: zeshuaro\ncustom:\n  - \"https://www.buymeacoffee.com/zeshuaro\"\n  - \"https://paypal.me/JoshuaTang\"\n"
  },
  {
    "path": ".github/workflows/github-actions.yml",
    "content": "name: GitHub Actions\n\non:\n  push:\n    branches:\n      - master\n  pull_request:\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.event.number || github.ref }}\n  cancel-in-progress: true\n\njobs:\n  test:\n    name: Test\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n\n      - name: Setup Python 🐍\n        id: setup-python\n        uses: actions/setup-python@v6\n        with:\n          python-version-file: \".python-version\"\n\n      - name: Install Poetry 📦\n        uses: snok/install-poetry@v1.4.1\n        with:\n          virtualenvs-create: true\n          virtualenvs-in-project: true\n\n      - name: Cache virtual environment 💾\n        uses: actions/cache@v5\n        with:\n          path: .venv\n          key: ${{ runner.os }}-venv-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}\n          restore-keys: |\n            ${{ runner.os }}-venv-${{ steps.setup-python.outputs.python-version }}-\n\n      - name: Install dependencies ⚙️\n        run: poetry install --no-interaction\n\n      - name: Run Tests 🧪\n        run: |\n          source .venv/bin/activate\n          pybabel compile -D pdf_bot -d locale\n          pytest --cov --cov-report=xml\n\n      - name: Upload coverage report 📡\n        uses: codecov/codecov-action@v6.0.0\n        env:\n          CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}\n\n  lint:\n    name: Lint\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n\n      - name: Setup Python 🐍\n        id: setup-python\n        uses: actions/setup-python@v6\n        with:\n          python-version-file: \".python-version\"\n\n      - name: Install Poetry 📦\n        uses: snok/install-poetry@v1.4.1\n        with:\n          virtualenvs-create: true\n          virtualenvs-in-project: true\n\n      - name: Cache virtual environment 💾\n        uses: actions/cache@v5\n        with:\n          path: .venv\n          key: ${{ runner.os }}-venv-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}\n          restore-keys: |\n            ${{ runner.os }}-venv-${{ steps.setup-python.outputs.python-version }}-\n\n      - name: Install dependencies ⚙️\n        run: poetry install --no-interaction --no-root\n\n      - name: Run linting 🧪\n        run: |\n          source .venv/bin/activate\n          pre-commit run --all-files\n\n  check-docker-image:\n    name: Check Docker image\n    runs-on: ubuntu-latest\n    if: ${{ github.ref != 'refs/heads/master' }}\n\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n\n      - name: Build Docker image 🏗\n        run: |-\n          docker build .\n\n  check-pyenv:\n    name: Check pyenv\n    runs-on: ubuntu-latest\n    if: ${{ github.ref != 'refs/heads/master' }}\n\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n\n      - name: Check Python version in pyenv 🐍\n        run: |\n          curl https://pyenv.run | bash\n          export PYENV_ROOT=\"$HOME/.pyenv\"\n          command -v pyenv >/dev/null || export PATH=\"$PYENV_ROOT/bin:$PATH\"\n          eval \"$(pyenv init -)\"\n          pyenv install\n"
  },
  {
    "path": ".github/workflows/pull-request-target.yml",
    "content": "name: Pull request target actions\n\non:\n  pull_request_target:\n\njobs:\n  pull-request:\n    uses: zeshuaro/github-actions-workflows/.github/workflows/pull-request-target.yml@cf90821e20f6d6557d4d182b76a7ef763c3653d0 # main\n"
  },
  {
    "path": ".github/workflows/pull-request.yml",
    "content": "name: Pull request actions\n\non:\n  pull_request:\n\njobs:\n  pull-request:\n    uses: zeshuaro/github-actions-workflows/.github/workflows/pull-request.yml@cf90821e20f6d6557d4d182b76a7ef763c3653d0 # main\n"
  },
  {
    "path": ".github/workflows/scheduled.yml",
    "content": "name: Scheduled actions\n\non:\n  schedule:\n    - cron: \"0 8 * * *\"\n\njobs:\n  scheduled:\n    uses: zeshuaro/github-actions-workflows/.github/workflows/scheduled.yml@cf90821e20f6d6557d4d182b76a7ef763c3653d0 # main\n    secrets:\n      GH_APP_ID: ${{ secrets.GH_APP_ID }}\n      GH_APP_PRIVATE_KEY: ${{ secrets.GH_APP_PRIVATE_KEY }}\n"
  },
  {
    "path": ".github/workflows/update-translations.yml",
    "content": "name: Update Translations\n\non:\n  schedule:\n    - cron: \"0 8 * * *\"\n  workflow_dispatch:\n\njobs:\n  update-translations:\n    name: Update Translations\n    runs-on: ubuntu-latest\n    steps:\n      - name: Create GitHub App token 🔑\n        id: app-token\n        uses: actions/create-github-app-token@v3\n        with:\n          app-id: ${{ secrets.GH_APP_ID }}\n          private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}\n\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n        with:\n          token: ${{ steps.app-token.outputs.token }}\n          persist-credentials: false\n\n      - name: Download translations 🌐\n        uses: crowdin/github-action@v2.16.2\n        with:\n          upload_sources: false\n          upload_translations: false\n          download_translations: true\n          commit_message: \"fix: new translations\"\n          create_pull_request: true\n          pull_request_title: \"fix: new translations\"\n          pull_request_labels: l10n\n          config: ./crowdin.yml\n          source: locale/en_GB/LC_MESSAGES/pdf_bot.po\n          translation: /locale/%locale_with_underscore%/LC_MESSAGES/pdf_bot.po\n        env:\n          GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}\n          CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}\n          CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}\n"
  },
  {
    "path": ".gitignore",
    "content": "# Created by https://www.toptal.com/developers/gitignore/api/macos,visualstudiocode,python\n# Edit at https://www.toptal.com/developers/gitignore?templates=macos,visualstudiocode,python\n\n### macOS ###\n# General\n.DS_Store\n.AppleDouble\n.LSOverride\n\n# Icon must end with two \\r\nIcon\n\n\n# Thumbnails\n._*\n\n# Files that might appear in the root of a volume\n.DocumentRevisions-V100\n.fseventsd\n.Spotlight-V100\n.TemporaryItems\n.Trashes\n.VolumeIcon.icns\n.com.apple.timemachine.donotpresent\n\n# Directories potentially created on remote AFP share\n.AppleDB\n.AppleDesktop\nNetwork Trash Folder\nTemporary Items\n.apdisk\n\n### macOS Patch ###\n# iCloud generated files\n*.icloud\n\n### Python ###\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\ncover/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\n.pybuilder/\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n#   For a library or package, you might want to ignore these files since the code is\n#   intended to run in multiple environments; otherwise, check them in:\n# .python-version\n\n# pipenv\n#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n#   However, in case of collaboration, if having platform-specific dependencies or dependencies\n#   having no cross-platform support, pipenv may install dependencies that don't work, or not\n#   install all needed dependencies.\n#Pipfile.lock\n\n# poetry\n#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.\n#   This is especially recommended for binary packages to ensure reproducibility, and is more\n#   commonly ignored for libraries.\n#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control\n#poetry.lock\n\n# pdm\n#   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.\n#pdm.lock\n#   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it\n#   in version control.\n#   https://pdm.fming.dev/#use-with-ide\n.pdm.toml\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n# pytype static type analyzer\n.pytype/\n\n# Cython debug symbols\ncython_debug/\n\n# PyCharm\n#  JetBrains specific template is maintained in a separate JetBrains.gitignore that can\n#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore\n#  and can be added to the global gitignore or merged into this file.  For a more nuclear\n#  option (not recommended) you can uncomment the following to ignore the entire idea folder.\n#.idea/\n\n### Python Patch ###\n# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration\npoetry.toml\n\n\n### VisualStudioCode ###\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n!.vscode/*.code-snippets\n\n# Local History for Visual Studio Code\n.history/\n\n# Built Visual Studio Code Extensions\n*.vsix\n\n### VisualStudioCode Patch ###\n# Ignore all local history of files\n.history\n.ionide\n\n# End of https://www.toptal.com/developers/gitignore/api/macos,visualstudiocode,python\n\n# Ruff\n.ruff_cache/\n"
  },
  {
    "path": ".pre-commit-config.yaml",
    "content": "repos:\n  - repo: https://github.com/pre-commit/pre-commit-hooks\n    rev: v6.0.0\n    hooks:\n      - id: check-added-large-files\n      - id: check-json\n      - id: check-toml\n      - id: check-yaml\n      - id: end-of-file-fixer\n        exclude: ^locale/\n      - id: trailing-whitespace\n\n  - repo: local\n    hooks:\n      - id: ruff-lint\n        name: ruff lint\n        entry: ruff\n        args:\n          - check\n        language: system\n        types: [python]\n      - id: ruff-format\n        name: ruff format\n        entry: ruff\n        args:\n          - format\n          - --check\n          - --diff\n        language: system\n        types: [python]\n      - id: mypy\n        name: mypy\n        entry: mypy\n        language: system\n        types: [python]\n"
  },
  {
    "path": ".python-version",
    "content": "3.14.4\n"
  },
  {
    "path": ".vscode/launch.json",
    "content": "{\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"name\": \"Python: pdf_bot\",\n      \"type\": \"python\",\n      \"request\": \"launch\",\n      \"module\": \"pdf_bot\",\n      \"console\": \"integratedTerminal\",\n      \"justMyCode\": false\n    }\n  ]\n}\n"
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n  \"editor.formatOnSave\": true,\n  \"python.analysis.indexing\": true,\n  \"python.testing.pytestArgs\": [\"tests\"],\n  \"python.testing.unittestEnabled\": false,\n  \"python.testing.pytestEnabled\": true,\n  \"[python]\": {\n    \"editor.defaultFormatter\": \"charliermarsh.ruff\",\n    \"editor.codeActionsOnSave\": {\n      \"source.organizeImports\": \"explicit\"\n    }\n  }\n}\n"
  },
  {
    "path": "Dockerfile",
    "content": "FROM --platform=linux/amd64 python:3.14.4-slim AS build\n\nARG COMMIT_HASH\n\nWORKDIR /build\nRUN apt-get update && apt-get install -y --no-install-recommends g++ gcc git libcairo2-dev \\\n    pkg-config python3-dev\n\nRUN pip install -U pip && pip install poetry\nCOPY pyproject.toml poetry.lock ./\n\nRUN poetry config virtualenvs.in-project true \\\n    && poetry install --only main --no-root --no-interaction\nENV PATH=\"/build/.venv/bin:${PATH}\"\n\nCOPY locale locale/\nRUN pybabel compile -D pdf_bot -d locale \\\n    && find locale -type f -name '*.po' -delete\n\nFROM --platform=linux/amd64 python:3.14.4-slim AS deploy\n\nARG COMMIT_HASH\nENV SENTRY_RELEASE $COMMIT_HASH\n\nRUN apt-get update \\\n    && apt-get install -y --no-install-recommends ghostscript libpango-1.0-0 \\\n    libpangoft2-1.0-0 ocrmypdf poppler-utils \\\n    && apt-get clean \\\n    && rm -rf /var/lib/apt/lists/*\n\nWORKDIR /app\n\nCOPY --from=build /build/.venv/ /build/.venv/\nENV PATH=\"/build/.venv/bin:${PATH}\"\n\nCOPY --from=build /build/locale /app/locale/\nCOPY pdf_bot pdf_bot/\n\nCMD [\"python\", \"-m\", \"pdf_bot\"]\n"
  },
  {
    "path": "LICENSE",
    "content": "                    GNU AFFERO GENERAL PUBLIC LICENSE\n                       Version 3, 19 November 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU Affero General Public License is a free, copyleft license for\nsoftware and other kinds of works, specifically designed to ensure\ncooperation with the community in the case of network server software.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nour General Public Licenses are intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  Developers that use our General Public Licenses protect your rights\nwith two steps: (1) assert copyright on the software, and (2) offer\nyou this License which gives you legal permission to copy, distribute\nand/or modify the software.\n\n  A secondary benefit of defending all users' freedom is that\nimprovements made in alternate versions of the program, if they\nreceive widespread use, become available for other developers to\nincorporate.  Many developers of free software are heartened and\nencouraged by the resulting cooperation.  However, in the case of\nsoftware used on network servers, this result may fail to come about.\nThe GNU General Public License permits making a modified version and\nletting the public access it on a server without ever releasing its\nsource code to the public.\n\n  The GNU Affero General Public License is designed specifically to\nensure that, in such cases, the modified source code becomes available\nto the community.  It requires the operator of a network server to\nprovide the source code of the modified version running there to the\nusers of that server.  Therefore, public use of a modified version, on\na publicly accessible server, gives the public access to the source\ncode of the modified version.\n\n  An older license, called the Affero General Public License and\npublished by Affero, was designed to accomplish similar goals.  This is\na different license, not a version of the Affero GPL, but Affero has\nreleased a new version of the Affero GPL which permits relicensing under\nthis license.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU Affero General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Remote Network Interaction; Use with the GNU General Public License.\n\n  Notwithstanding any other provision of this License, if you modify the\nProgram, your modified version must prominently offer all users\ninteracting with it remotely through a computer network (if your version\nsupports such interaction) an opportunity to receive the Corresponding\nSource of your version by providing access to the Corresponding Source\nfrom a network server at no charge, through some standard or customary\nmeans of facilitating copying of software.  This Corresponding Source\nshall include the Corresponding Source for any work covered by version 3\nof the GNU General Public License that is incorporated pursuant to the\nfollowing paragraph.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the work with which it is combined will remain governed by version\n3 of the GNU General Public License.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU Affero General Public License from time to time.  Such new versions\nwill be similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU Affero General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU Affero General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU Affero General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    A Telegram bot that can do a lot of things related to PDF files.\n    Copyright (C) 2016-2025  Joshua Tang\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU Affero General Public License as published\n    by the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU Affero General Public License for more details.\n\n    You should have received a copy of the GNU Affero General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If your software can interact with users remotely through a computer\nnetwork, you should also make sure that it provides a way for users to\nget its source.  For example, if your program is a web application, its\ninterface could display a \"Source\" link that leads users to an archive\nof the code.  There are many ways you could offer source, and different\nsolutions will be better for different programs; see section 13 for the\nspecific requirements.\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU AGPL, see\n<https://www.gnu.org/licenses/>.\n"
  },
  {
    "path": "README.md",
    "content": "# Telegram PDF Bot\n\n[![Telegram Bot](https://img.shields.io/badge/Telegram-Bot-blue.svg)](https://t.me/pdfbot)\n[![MIT License](https://img.shields.io/github/license/zeshuaro/telegram-pdf-bot.svg)](https://github.com/zeshuaro/telegram-pdf-bot/blob/master/LICENSE)\n[![GitHub Actions](https://github.com/zeshuaro/telegram-pdf-bot/actions/workflows/github-actions.yml/badge.svg)](https://github.com/zeshuaro/telegram-pdf-bot/actions/workflows/github-actions.yml)\n[![codecov](https://codecov.io/github/zeshuaro/telegram-pdf-bot/graph/badge.svg?token=6JAciEl1i7)](https://codecov.io/github/zeshuaro/telegram-pdf-bot)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/71c277e105c74d9fb99c37db6b23c8ca)](https://app.codacy.com/gh/zeshuaro/telegram-pdf-bot/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![Crowdin](https://badges.crowdin.net/telegram-pdf-bot/localized.svg)](https://crowdin.com/project/telegram-pdf-bot)\n[![Telegram Channel](https://img.shields.io/badge/Telegram-Channel-blue.svg)](https://t.me/pdf2botdev)\n[![Mentioned in Awesome Telegram](https://awesome.re/mentioned-badge.svg)](https://github.com/ebertti/awesome-telegram)\n\n[![Github-sponsors](https://img.shields.io/badge/sponsor-30363D?style=for-the-badge&logo=GitHub-Sponsors&logoColor=#EA4AAA)](https://github.com/sponsors/zeshuaro)\n[![BuyMeACoffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://www.buymeacoffee.com/zeshuaro)\n[![Ko-Fi](https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/zeshuaro)\n[![LiberaPay](https://img.shields.io/badge/Liberapay-F6C915?style=for-the-badge&logo=liberapay&logoColor=black)](https://liberapay.com/zeshuaro/)\n[![Patreon](https://img.shields.io/badge/Patreon-F96854?style=for-the-badge&logo=patreon&logoColor=white)](https://patreon.com/zeshuaro)\n[![PayPal](https://img.shields.io/badge/PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white)](https://paypal.me/JoshuaTang)\n\nA Telegram bot that can:\n\n- Compress, crop, decrypt, encrypt, merge, preview, rename, rotate, scale and split PDF files\n- Compare text differences between two PDF files\n- Create PDF files from text messages\n- Add watermark to PDF files\n- Add text layers to PDF files to make them searchable with text\n- Extract images and text from PDF files\n- Convert PDF files into images\n- Beautify handwritten notes images into PDF files\n- Convert webpages and images into PDF files\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes\n\n### Setup Database\n\nThe bot uses [Datastore](https://cloud.google.com/datastore) on Google Cloud Platform (GCP). Create a new project on GCP and enabble Datastore in the project. Install the [gcloud CLI](https://cloud.google.com/sdk/) and run `gcloud init` to initialise it with your project.\n\n### OS Requirements\n\nUbuntu\n\n```sh\napt-get install poppler-utils libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-info\n```\n\nmacOS\n\n```sh\nbrew install libxml2 libxslt poppler cairo pango gdk-pixbuf libffi\n```\n\n### Install dependencies\n\nThis project uses [Poetry](https://python-poetry.org/) as the dependency manager, run the following command to install the dependencies:\n\n```sh\npoetry install --no-root\n```\n\n### Compile the translation files\n\nRun the following command to compile all the translation files:\n\n```sh\npybabel compile -D pdf_bot -d locale/\n```\n\n### Setup Your Environment Variables\n\nCopy the `.env` example file and edit the variables within the file:\n\n```sh\ncp .env.example .env\n```\n\n### Running The Bot\n\nYou can then start the bot with the following command:\n\n```bash\npython -m pdf_bot\n```\n"
  },
  {
    "path": "_typos.toml",
    "content": "[type.po]\nextend-glob = [\"*.po\"]\ncheck-file = false\n"
  },
  {
    "path": "codecov.yml",
    "content": "comment: false\n"
  },
  {
    "path": "crowdin.yml",
    "content": "project_id_env: CROWDIN_PROJECT_ID\napi_token_env: CROWDIN_PERSONAL_TOKEN\n"
  },
  {
    "path": "locale/af_ZA/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: af\\n\"\n\"Language-Team: Afrikaans\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: af\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Kanselleer\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Gedoen\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Terug\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Iets het verkeerd geloop, begin met u lêer of opdrag\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Kon nie die proses voltooi nie\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Welkom by PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Sleutelkenmerke:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Kompressie, saamsmelt, voorskou, hernoem, verdeel en voeg watermerk by PDF-lêers\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Skep PDF-lêers van teksboodskappe\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Onttrek beelde en teks uit PDF-lêers\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Omskep PDF-lêers in beelde\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Omskep webbladsye en beelde in PDF-lêers\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Verfraai handgeskrewe notas beelde in PDF-lêers\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- En meer ...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Tipe {command} om te sien hoe om PDF Bot te gebruik\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Stel taal 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Sluit aan by Kanaal\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Ondersteun PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Jy kan die meeste van die take uitvoer deur vir my een van die volgende te stuur:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF-lêers\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Beelde\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Webbladsy skakels\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Die res van die take kan uitgevoer word deur die volgende opdragte te gebruik:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - vergelyk PDF-lêers\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - voeg PDF-lêers saam\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - omskep en kombineer verskeie beelde in PDF-lêers\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - skep PDF-lêers van teksboodskappe\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - voeg watermerk by PDF-lêers\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Stuur vir my een van die PDF-lêers wat jy graag wil vergelyk\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Let daarop dat ek net teksverskille kan soek\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Stuur vir my die ander PDF-lêer wat jy wil vergelyk\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Vergelyk jou PDF-lêers\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Daar is geen teksverskille tussen jou PDF-lêers nie\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Iets het verkeerd gegaan, probeer asseblief weer.\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Die knoppie het verval, begin met u lêer of opdrag\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Die gevolglike beeld is ongeldig, probeer weer\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Stuur vir my jou terugvoer in Engels\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Die terugvoer is nie in Engels nie, probeer weer\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Dankie vir u terugvoer, ek het dit aan my ontwikkelaar gestuur\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Jou lêer is te groot vir my om af te laai en te verwerk\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Let daarop dat dit 'n Telegram Bot beperking is en daar is niks wat ek kan doen nie, tensy Telegram hierdie limiet verander\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Verwerk u lêer\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Kies die taak wat jy wil uitvoer\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Hierdie artikel is 'n weesbladsy\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Na PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Verwyder laaste lêer\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Stuur vir my die beelde wat u wil verfraai of omskep in 'n PDF-lêer\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Let daarop dat die beelde verfraai en omgeskakel sal word in die volgorde wat u my stuur\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Jy het tot dusver vir my hierdie beelde gestuur:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Kies die taak van onder af as u al die beelde vir my gestuur het, of hou aan om vir my die beelde te stuur\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"U het al die beelde wat u aan my gestuur het, verwyder\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} is verwyder\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Jy het geen beelde vir my gestuur nie\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Jy het net vir my een beeld gestuur\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Verfraai en omskep jou beelde in 'n PDF-lêer\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Omskep jou beelde in 'n PDF-lêer\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Kies jou taal\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Jou taal is ingestel om te {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Stuur vir my die PDF-lêers wat jy graag wil saamsmelt\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Let daarop dat die lêers saamgesmelt sal word in die volgorde wat jy my stuur\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"U het tot dusver vir my hierdie PDF-lêers gestuur:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Druk {done} as jy vir my al die PDF-lêers gestuur het wat jy graag wil saamsmelt of aanhou om vir my die PDF-lêers te stuur\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"U het reeds al die PDF-lêers verwyder wat u vir my gestuur het\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} is verwyder vir samesmelting\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Jy het nie vir my enige PDF-lêers gestuur nie\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Jy het net vir my een PDF-lêer gestuur\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Voeg jou PDF-lêers saam\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Sê dankie\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Koffie\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Bier\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Maaltyd\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Kies hoe jy PDF Bot wil ondersteun\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Sê dankie aan PDF Bot en help om dit aan die gang te hou\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Iets het verkeerd geloop, probeer weer\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Dankie vir jou ondersteuning!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Help vertaal PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Jou PDF-lêer is geïnkripteer, dekripteer dit eers en probeer dan weer\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Jou PDF-lêer is nie geënkripteer nie\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Verkeerde wagwoord, probeer asseblief weer\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Jou PDF-lêer is geënkripteer met 'n metode wat ek nie kan dekripteer nie\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Geen beelde wat in jou PDF-lêer gevind word nie\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Geen teks in jou PDF-lêer gevind nie\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Ek kon nie u PDF -lêers saamsmelt nie, aangesien hierdie lêer ongeldig is: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"U PDF-lêer het reeds 'n tekslaag\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Jou PDF-lêer is ongeldig\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Saamdruk\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Lêergrootte verminder met {percent}, van {old_size} tot {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Volgens persentasie\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Tot marge grootte\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Stuur vir my 'n nommer tussen 0 en 100\\n\\n\"\n\"Dit is die persentasie margespasie om te behou tussen die inhoud in jou PDF-lêer en die bladsy\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Stuur vir my 'n nommer wat jy graag die margegrootte wil aanpas\\n\\n\"\n\"Positiewe getalle sal die margegrootte verminder en negatiewe getalle sal dit verhoog\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Gewas\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Kies die gewastipe wat jy graag wil uitvoer\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Die gewaswaardes is ongeldig, probeer weer\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Dekripteer\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Stuur vir my die wagwoord om jou PDF-lêer te dekripteer\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Enkripteer\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Stuur vir my die wagwoord om jou PDF-lêer te enkripteer\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Onttrek prente\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Onttrek teks\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Grysskaal\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Na beelde\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Voorskou\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Hernoem\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Lêername kan nie een van die volgende karakters bevat nie, probeer asseblief weer:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Stuur vir my die lêernaam waarna jy jou PDF-lêer wil hernoem\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Roteer\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Kies die grade wat jy jou PDF-lêer in kloksgewys wil draai\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Volgens faktor\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Om dimensie te dimensie\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Stuur vir my die skaalfaktore vir die horisontale en vertikale asse\\n\\n\"\n\"Voorbeeld: 2 0,5 - dit sal die horisontale as verdubbel en die vertikale as halveer\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Stuur vir my die breedte en hoogte\\n\\n\"\n\"Voorbeeld: 150 200 - dit stel die breedte op 150 en hoogte op 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Skaal\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Kies die skaaltipe wat u wil uitvoer\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Die skaalwaardes is ongeldig, probeer weer\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Verdeel\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Die gesplete reeks is ongeldig, probeer asseblief weer\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Stuur vir my die reeks bladsye wat jy wil hou\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Algemene gebruik\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      alle bladsye\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      bladsy 8 slegs\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    eerste drie bladsye\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     van bladsy 8 af\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     laaste bladsy net\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    alle bladsye behalwe die laaste bladsy\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     tweede laaste bladsy\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    laaste twee bladsye\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  derde en tweede laaste bladsye\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Gevorderde gebruik\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    bladsye {pages} en tot die einde toe\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} bladsye {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   alle bladsye in omgekeerde volgorde\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} bladsye {pages} behalwe {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  bladsye {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Jou lêer is te groot vir my om af te laai en te verwerk, probeer asseblief weer met 'n ander lêer\\n\\n\"\n\"Let daarop dat hierdie limiet deur Telegram afgedwing word en dat daar niks is wat ek kan doen tensy Telegram dit verander nie\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Die lêer is te groot vir my om aan u te stuur\\n\\n\"\n\"Let daarop dat hierdie limiet deur Telegram afgedwing word en dat daar niks is wat ek kan doen tensy Telegram dit verander nie\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Jou lêer is nie 'n beeld nie, probeer asseblief weer\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Geen beeld in jou boodskap gevind nie\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Jou lêer is nie 'n PDF-lêer nie, probeer asseblief weer\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Aksie gekanselleer\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Hier is u resultaatlêer\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Slaan\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Stuur vir my die teks wat jy in jou PDF-lêer wil skryf\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Stuur vir my die lettertipe wat jy vir die PDF-lêer wil gebruik of druk {skip} om die verstekfont te gebruik\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Sien hier vir die lys van ondersteunde lettertipes: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Onbekende lettertipe, probeer asseblief weer\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Skep jou PDF-lêer\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Stuur vir my die PDF-lêer wat jy graag 'n watermerk wil byvoeg\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Stuur vir my die watermerk PDF-lêer\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Voeg die watermerk by jou PDF-lêer\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Jy het al vir my hierdie webblad gestuur en ek skakel dit nog om\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Omskakeling van jou webblad in 'n PDF-lêer\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Kan nie jou webblad bereik nie\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Kon nie u webblad omskakel nie\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/am_ET/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: am\\n\"\n\"Language-Team: Amharic\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n > 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: am\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"ሰርዝ\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"ተከናውኗል\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"ተመለስ\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"አንድ ስህተት ሄደ, በእርስዎ ፋይል ወይም ትዕዛዝ እንደገና ይጀምሩ\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"ሂደቱን ማጠናቀቅ አልተቻለም\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"ወደ ፒዲኤፍ ቦት እንኳን በደህና መጡ!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"ቁልፍ ባህሪያት:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- ወደ ፒዲኤፍ ፋይሎች ይጭመቁ ፣ ያዋህዱ ፣ ቅድመ -እይታ ፣ እንደገና ይሰይሙ ፣ ይከፋፈሉ እና የውሃ ምልክት ማድረጊያ ያክሉ\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- ከጽሑፍ መልእክቶች የፒዲኤፍ ፋይሎችን ይፍጠሩ\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- ምስሎችን እና ጽሑፍን ከፒዲኤፍ ፋይሎች ያውጡ\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- የፒዲኤፍ ፋይሎችን ወደ ምስሎች ይለውጡ\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- ድረ -ገጾችን እና ምስሎችን ወደ ፒዲኤፍ ፋይሎች ይለውጡ\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- በእጅ የተፃፉ ማስታወሻዎችን ምስሎች ወደ ፒዲኤፍ ፋይሎች ያምሩ\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- ሌሎችም...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"ፒዲኤፍ ቦትን እንዴት እንደሚጠቀሙ ለማየት {command} ይተይቡ\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"ቋንቋ አዘጋጅ 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"ቻናሉን ይቀላቀሉ\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"የፒዲኤፍ ቦትን ይደግፉ\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"ከሚከተሉት ውስጥ አንዱን በመላክ አብዛኞቹን ተግባራት ማከናወን ይችላሉ-\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- ፒዲኤፍ ፋይሎች\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- ምስሎች\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- የድር አገናኞች\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"ቀሪዎቹ ተግባራት የሚከተሉትን ትዕዛዞች በመጠቀም ሊከናወኑ ይችላሉ-\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - የፒዲኤፍ ፋይሎችን ያወዳድሩ\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - የፒዲኤፍ ፋይሎችን ያዋህዱ\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - ብዙ ምስሎችን ወደ PDF ፋይሎች መቀየር እና ማቀናጀት\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - ከጽሑፍ መልእክቶች የፒዲኤፍ ፋይሎችን ይፍጠሩ\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - በፒዲኤፍ ፋይሎች ላይ የውሃ ምልክት ያክሉ\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"ለማወዳደር ከሚወዷቸው የፒዲኤፍ ፋይሎች ውስጥ አንዱን ላኩልኝ\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"የጽሑፍ ልዩነቶችን ብቻ መፈለግ እንደምችል ልብ ይበሉ\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"ለማወዳደር የምትፈልገውን ሌላ የፒዲኤፍ ፋይል ላክልኝ\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"የፒዲኤፍ ፋይሎችዎን ማወዳደር\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"በፒዲኤፍ ፋይሎችዎ መካከል ምንም የጽሑፍ ልዩነቶች የሉም\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"የሆነ ችግር ተፈጥሯል ፣ እባክዎ እንደገና ይሞክሩ\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"መተግበሪያው አልፏል, በእርስዎ ፋይል ወይም ትዕዛዝ እንደገና ይጀምሩ\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"የተገኘው ምስል ተቀባይነት የለውም, እንደገና ይሞክሩ\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"አስተያየታችሁን በእንግሊዝኛ ላኩልኝ\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"አስተያየትዎን ይላኩልኝ ወይም /cancel ይህንን እርምጃ ይሰርዙ። ወደ እኔ ገንቢ የሚተላለፈው የእንግሊዝኛ ጽሑፍ ብቻ መሆኑን ልብ ይበሉ።\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"ስለሰጠኸው አስተያየት አመሰግናለሁ፣ ለታዳጊዬ አስተናግደዋለሁ\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"ለማውረድ እና ለማስኬድ ፋይልዎ ለእኔ በጣም ትልቅ ነው\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"ይህ የቴሌግራም ቦት ውስንነት መሆኑን እና ቴሌግራም ይህንን ገደብ ካልቀየረ የማደርገው ምንም ነገር የለም\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"ፋይልዎን ማሰናዳት\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"ማከናወን የሚወዱትን ተግባር ይምረጡ\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"አሳምር\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"ወደ ፒዲኤፍ\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"የመጨረሻውን ፋይል አስወግድ\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"ማስዋብ ወይም ወደ PDF ፋይል መቀየር የምትወዱትን ምስሎች ላኩልኝ\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"ምስሎቹ አንተ በምትልከኝ ቅደም ተከተል ውብ እንደሚሆኑና እንደሚለወጡ ልብ በል\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"እነዚህን ምስሎች እስካሁን ልከኸኛል።\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"ሁሉንም ምስሎች ልከውልኛል ከሆነ ከታች ያለውን ስራ ይምረጡ, ወይም ምስሎቹን መላክቀጥሉን ቀጥሉ\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"የላክኸኝን ምስሎች በሙሉ አስቀድመህ አስወግደሃል\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} ተወግዷል\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"ምንም ምስል አልላክኸኝም\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"አንድ ምስል ብቻ ልከኸኛል\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"የእርስዎን ምስሎች ወደ PDF ፋይል መቀየር እና ማስዋብ\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"የእርስዎን ምስሎች ወደ PDF ፋይል መቀየር\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"ቋንቋዎን ይምረጡ\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"ቋንቋዎ ወደ {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"ልታዋህዳቸው የምትፈልጋቸውን የፒዲኤፍ ፋይሎች ላክልኝ\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"ልብ በሉኝ ቅደም ተከተል ውስጥ ፋይሎቹ እንደሚዋሃዱ ልብ ይበሉ\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"እስከ አሁን ድረስ እነዚህን የፒዲኤፍ ፋይሎች ልከኸኛል\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"የፒዲኤፍ ፋይሎችን ማዋሃድ ወይም መቀጠል የሚፈልጓቸውን ሁሉንም የፒዲኤፍ ፋይሎች ከላኩልኝ {done}\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"የላክኸኝን የፒዲኤፍ ፋይሎች በሙሉ አስወግደሃል\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} በማዋሃድ ተወግዷል\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"ምንም የፒዲኤፍ ፋይሎች አልላኩልኝም\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"አንድ የፒዲኤፍ ፋይል ብቻ ልከውልኛል\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"የፒዲኤፍ ፋይሎችዎን ማዋሃድ\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"አመሰግናለሁ በሉ\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"ቡና\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"ቢራ\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"ምግብ\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"ፒዲኤፍ ቦትን እንዴት መደገፍ እንደሚፈልጉ ይምረጡ\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"ለፒዲኤፍ ቦት ምስጋና ይናገሩ እና እንዲሠራ ያግዙ\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"አንድ ነገር ተሳሳትኩ እንደገና ሞክር\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"ለድጋፎት እናመሰግናለን!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"ፒዲኤፍ ቦትን ለመተርጎም ያግዙ\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"የእርስዎ የፒዲኤፍ ፋይል ኢንክሪፕት የተደረገ ነው, በመጀመሪያ ይፈቱት ከዚያም እንደገና ይሞክሩ\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"የእርስዎ ፒዲኤፍ ፋይል አልተመሰጠረም\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"የተሳሳተ የይለፍ ቃል, እባክዎ እንደገና ይሞክሩ\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"የፒዲኤፍ ፋይልዎ ዲክሪፕት ማድረግ ባልችል ዘዴ ተመስጥሯል\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"በፒዲኤፍ ፋይልዎ ውስጥ የተገኙ ምስሎች\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"በፒዲኤፍ ፋይልዎ ውስጥ ምንም ጽሑፍ አልተገኘም\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"ይህ ፋይል ውድቅ ስለሆነ የእርስዎን የፒዲኤፍ ፋይሎች ማዋሃድ አልቻልኩም %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"የእርስዎ ፒዲኤፍ ፋይል ቀደም ሲል የጽሑፍ ንብርብር አለው\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"የእርስዎ የፒዲኤፍ ፋይል ዋጋ የለውም\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"መጭመቅ\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"የፋይል መጠን በ {percent}ቀንሷል ፣ ከ {old_size} ወደ {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"በመቶ\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"ወደ ኅዳግ መጠን\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"ከ 0 እስከ 100\\n\\n\"\n\"መካከል ቁጥር ይላኩልኝ ይህ በፒዲኤፍ ፋይልዎ እና በገጽዎ ውስጥ ባለው ይዘት መካከል ለመያዝ የኅዳግ ቦታ አሃዝ ነው\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"የኅዳግ መጠንን ማስተካከል የምትወዱትን ቁጥር ላኩልኝ\\n\\n\"\n\"ፖዚቲቭ ቁጥሮች የኅዳግ መጠንን ይቀንሳሉ እና አሉታዊ ቁጥሮች ይጨምራሉ\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"ቁረጥ\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"የምትፈልገውን የሰብል ዓይነት ምረጥ\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"የሰብል እሴት ዋጋ ቢስ ነው, እንደገና ይሞክሩ\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"ዲክሪፕት\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"የፒዲኤፍ ፋይልዎን ዲክሪፕት ለማድረግ የይለፍ ቃሉን ይላኩልኝ\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"ኢንክሪፕት\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"የፒዲኤፍ ፋይልዎን ለማመስጠር የይለፍ ቃሉን ይላኩልኝ\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"ምስሎችን አውጥ\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"ጽሁፍ\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"ግራጫ ቀለም\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"ወደ ምስሎች\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"ቅድመ-እይታ\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"ዳግም ሰይም\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"የፋይል ስሞች ከሚከተሉት ፊደሎች መካከል አንዳቸውንም መያዝ አይችሉም, እባክዎ እንደገና ይሞክሩ\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"የፒ.ዲ.ኤፍ. ፋይልዎን እንደገና ለመሰየም የሚፈልጉትን የፋይል ስም ይላኩልኝ\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"አዙር\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"ፒዲኤፍ ፋይልዎን አቅጣጫ ለማሽከርከር የሚፈልጉትን ዲግሪዎች ይምረጡ\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"በምክንያት\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"ወደ ስፋት\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"ለአግድም ና ቀጥ ያለ መጥረቢያ ዎች የስኬቲንግ ምክንያቶችን ላኩልኝ\\n\\n\"\n\"ምሳሌ 2 0.5 - ይህም አግድም ዛቢያውን እጥፍ ያደርጋል እና ቀጥ ያለ ዛቢያን በግማሽ ይቀንሰው\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"ስፋቱን እና ከፍታውን ላኩልኝ\\n\\n\"\n\"ምሳሌ 150 200 - ይህም ስፋት ወደ 150 እና ቁመት ወደ 200 ያስቀምጣል\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"መጠን\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"ማድረግ የምትወዱትን ዓይነት ይምረጡ\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"የስፋት እሴቶች ዋጋ ቢስ ናቸው, እንደገና ይሞክሩ\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"ተከፈለ\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"የተከፈለበት ክልል ተቀባይነት የለውም, እባክዎ እንደገና ይሞክሩ\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"ለማቆየት የሚፈልጓቸውን የገጾች ብዛት ላክልኝ\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"አጠቃላይ አጠቃቀም\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      ሁሉም ገጾች\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      ገጽ 8 ብቻ\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    የመጀመሪያዎቹ ሦስት ገጾች\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     ከገጽ 8 ጀምሮ\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     የመጨረሻው ገጽ ብቻ\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    ሁሉም ገጾች ከመጨረሻው ገጽ በስተቀር\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     ሰከንድ የመጨረሻ ገጽ ብቻ\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    የመጨረሻዎቹ ሁለት ገጾች\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  ሦስተኛ እና ሁለተኛ የመጨረሻ ገጾች\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"የላቀ አጠቃቀም\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    ገጾች {pages} እና እስከ መጨረሻው\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} ገጾች {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   ሁሉም ገጾች በተገላቢጦሽ ቅደም ተከተል\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} ገጾች {pages} ከ {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  ገጾች {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"የእርስዎ ፋይል በጣም ትልቅ ነው ማውረድ እና መስራት, እባክዎ በተለየ ፋይል እንደገና ይሞክሩ\\n\\n\"\n\"ይህ ገደብ በቴሌግራም ተፈጻሚ እንደሆነ እና ቴሌግራም ካልቀየረው በስተቀር ምንም ማድረግ እንደማልችል ልብ በሉ\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"ፋይሉ በጣም ትልቅ ነው ለእርስዎ ለመላክ\\n\\n\"\n\"ማስታወሻ ይህ ገደብ በቴሌግራም ተፈፃሚ ነው እና ቴሌግራም ካልቀየረ በስተቀር ምንም ማድረግ አልችልም\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"ፋይልዎ ምስል አይደለም, እባክዎ እንደገና ይሞክሩ\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"በመልዕክትዎ ውስጥ ምስል አልተገኘም\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"ፋይልዎ የፒዲኤፍ ፋይል አይደለም ፣ እባክዎ እንደገና ይሞክሩ\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"እርምጃ ተሰር .ል\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"የውጤት ፋይልዎ ይኸውና\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"ሽቅብ\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"በፒዲኤፍ ፋይልዎ ውስጥ ለመጻፍ የሚፈልጉትን ጽሑፍ ይላኩልኝ\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"ለፒዲኤፍ ፋይሉ ለመጠቀም የሚፈልጉትን ቅርጸ -ቁምፊ ይላኩልኝ ወይም ነባሪውን ቅርጸ -ቁምፊ ለመጠቀም {skip}\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"የሚደገፉ ቅርጸ -ቁምፊዎች ዝርዝር እዚህ ይመልከቱ {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"ያልታወቀ ቅርጸ -ቁምፊ ፣ እባክዎ እንደገና ይሞክሩ\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"የፒዲኤፍ ፋይልዎን በመፍጠር ላይ\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"የውሃ ምልክት ማድረጊያ ማከል የሚፈልጉትን የፒዲኤፍ ፋይል ላኩልኝ\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"የውሃ ምልክት ማድረጊያ ፒዲኤፍ ፋይል ላክልኝ\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"በፒዲኤፍ ፋይልዎ ላይ የውሃ ምልክቱን ማከል\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"ይህን ድረ ገጽ ድሮ ልከኸኛል አሁንም እየቀየርኩት ነው\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"የእርስዎን ድረ ገጽ ወደ PDF ፋይል መቀየር\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"ድረ ገጽህ ላይ መድረስ አልተቻለም\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"ድረ ገጻችሁን መቀየር ሳይችሉ ቀርተዋል\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/ar_SA/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:58\\n\"\n\"Last-Translator: \\n\"\n\"Language: ar\\n\"\n\"Language-Team: Arabic\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: ar\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"إلغاء\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"تم\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"رجوع\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"حدث خطأ ما، ابدأ من جديد بملفك أو أمرك\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"أخفق إكمال العملية\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"مرحبا بكم في بوت PDF!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"الخاصيات الرئيسية\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- ضغط ودمج ومعاينة وإعادة تسمية وتقسيم وإضافة علامة مائية لملفات PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- إنشاء ملفات PDF من الرسائل النصية\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- استخراج الصور والنصوص من ملفات PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- تحويل ملفات PDF إلى صور\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- تحويل صفحات الويب والصور إلى ملفات PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- تجميل الملاحظات المكتوبة بخط اليد الصور في ملفات PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"-وأكثر من ذلك ...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"اكتب {command} لمعرفة كيفية استخدام PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"تغير اللغه 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"انضم إلى القناة\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"ادعم بوت ال PDF\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"يمكنك تنفيذ معظم المهام عن طريق إرسال أحد ما يلي:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- ملفات PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- صور\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- روابط صفحة ويب\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"يمكن تنفيذ باقي المهام باستخدام الأوامر التالية:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - مقارنة ملفات PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - دمج ملفات PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - تحويل ودمج صور متعددة في ملفات PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} -- إنشاء ملفات PDF من الرسائل النصية\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - إضافة علامة مائية لملفات PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"أرسل لي أحد ملفات PDF التي تريد مقارنتها\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"لاحظ أنه يمكنني البحث فقط عن الاختلافات النصية\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"أرسل الملف الاخر الذي تريد مقارنته\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"جاري المقارنة بين الملفين\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"لا توجد اختلافات نصية بين ملفات PDF\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"حدث خطأ ما، يرجى المحاولة مرة أخرى\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"انتهت صلاحية الزر ، ابدأ من جديد بملفك أو أمرك\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"الصورة الناتجة غير صالحة، حاول مرة أخرى\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"أرسل لي ملاحظاتك باللغة الإنجليزية\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"هذه المراجعة ليست باللغة الإنكليزية ، حاول مجدداً \"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"شكرا لك على ملاحظاتك ، لقد أرسلتها إلى مطور البرامج الخاص بي\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"ملفك كبير جدا بالنسبة لي لتحميل ومعالجة\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"لاحظ أن هذا هو تقييد تيليجرام بوت وليس هناك شيء يمكنني القيام به ما لم تغير تيليجرام هذا الحد\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"معالجة ملفك\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"حدد نوع المهمة التي تريد تنفيذها\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"تجميل\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"الى PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"إزالة الملف الأخير\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"أرسل لي الصور التي تريد تجميلها أو تحويلها إلى ملف PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"لاحظ أن الصور سيتم تجميلها وتحويلها بالترتيب الذي ترسله لي\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"لقد أرسلت لي هذه الصور حتى الآن:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"حدد المهمة من الأسفل إذا كنت قد أرسلت لي جميع الصور ، أو استمر في إرسال الصور لي\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"لقد قمت بالفعل بإزالة جميع الصور التي أرسلتها لي\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"تمت إزالة {file_name}\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"لم ترسل لي أي صور\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"لقد أرسلت لي صورة واحدة فقط\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"تجميل وتحويل صورك إلى ملف PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"تحويل صورك إلى ملف PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"حدد لغتك\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"تم تعيين لغتك إلى {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"أرسل لي ملفات PDF التي تريد دمجها\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"لاحظ أنه سيتم دمج الملفات بالترتيب الذي ترسله لي\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"لقد أرسلت لي ملفات PDF هذه حتى الآن:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"اضغط {done} إذا كنت قد أرسلت لي جميع ملفات PDF التي تريد دمجها أو الاستمرار في إرسال ملفات PDF لي\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"لقد قمت بالفعل بإزالة جميع ملفات PDF التي أرسلتها إلي\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"تمت إزالة {file_name} للدمج\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"لم ترسل لي أي ملفات PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"لقد أرسلت لي ملف PDF واحد فقط\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"جاري دمج المفات\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"قل شكراً\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"قهوة\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"بيرة\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"طعام\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"حدد كيف تريد دعم PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"قل سكر ل PDF Bot و ساعد باستمراره\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"حدث خطأ ما، حاول مرة أخرى\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"شكرا على دعمك!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"ساعد على ترجمة PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"ملف PDF الخاص بك مشفر ، قم بفك تشفيره أولا ثم حاول مرة أخرى\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"ان ملفك غير مشفر\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"كلمة مرور غير صحيحة، يرجى المحاولة مرة أخرى\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"ملف PDF مشفر بطريقة لا أستطيع فك تشفيرها\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"لم يتم العثور على صور في ملف PDF الخاص بك\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"لم يتم العثور على نص في ملف PDF الخاص بك\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"لم أتمكن من دمج ملفات PDF الخاصة بك لأن هذا الملف غير صالح: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"ملفك بالفعل لديه طبقة نص\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"ملف PDF غير صالح\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"ضغط\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"حجم الملف الذي تم تخفيضه بمقدار {percent}، من {old_size} إلى {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"حسب النسبة المئوية\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"إلى حجم الهامش\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"أرسل لي رقما بين 0 و 100\\n\\n\"\n\"هذه هي النسبة المئوية لمساحة الهامش للاحتفاظ بها بين المحتوى في ملف PDF الخاص بك والصفحة\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"أرسل لي رقما ترغب في ضبط حجم الهامش\\n\\n\"\n\"الأرقام الموجبة ستقلل من حجم الهامش وستزيده الأرقام السالبة\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"قص\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"حدد نوع الاقتصاص الذي ترغب في تنفيذه\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"قيم الاقتصاص غير صالحة، حاول مرة أخرى\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"فُكَّ التشفير\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"أرسل كلمة السر لفك تشفير الملف\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"تشفير\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"أرسل كلمة السر ل تشفير الملف\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"استخراج الصور\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"استخراج النص\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"تدرج الرمادي\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"إلى الصور\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"معاينة\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"اعادة تسمية\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"لا يمكن أن تحتوي أسماء الملفات على أي من الأحرف التالية، يرجى المحاولة مرة أخرى:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"ارسل لي اسمالكي اغير ملفك له\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"تدوير\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"حدد الدرجة التي تريد تدوير الملف بهاحسب حركة عقارب الساعة\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"حسب العامل\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"إلى البعد\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"أرسل لي عوامل القياس للمحاور الأفقية والرأسية\\n\\n\"\n\"مثال: 2 0.5 - سيؤدي ذلك إلى مضاعفة المحور الأفقي وخفض المحور الرأسي إلى النصف\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"أرسل لي العرض والارتفاع\\n\\n\"\n\"مثال: 150 200 - سيؤدي ذلك إلى ضبط العرض على 150 والارتفاع على 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"قياس - نسبة\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"حدد نوع المقياس الذي ترغب في تنفيذه\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"قيم المقياس غير صالحة، حاول مرة أخرى\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"تقسيم\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"النطاق المقسم غير صالح ، يرجى المحاولة مرة أخرى\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"أرسل لي مجموعة من الصفحات التي ستحب الاحتفاظ بها\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"الاستخدام العام\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      جميع الصفحات\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      الصفحة 8 فقط\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    الصفحات الثلاث الأولى\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     من الصفحة 8 فصاعدا\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     الصفحة الأخيرة فقط\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    جميع الصفحات باستثناء الصفحة الأخيرة\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     الصفحة الأخيرة الثانية فقط\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    آخر صفحتين\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  الصفحتين الثالثة والثانية الأخيرة\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"الاستخدام المتقدم\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    صفحات {pages} وحتى النهاية\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"صفحات {range} {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   جميع الصفحات بترتيب معكوس\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{pages} الصفحات {range} باستثناء {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"صفحات {range} {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"ملفك كبير جدا بالنسبة لي لتنزيله ومعالجته ، يرجى المحاولة مرة أخرى باستخدام ملف مختلف\\n\\n\"\n\"لاحظ أن هذا الحد يتم فرضه بواسطة Telegram ولا يوجد شيء يمكنني فعله ما لم يغيره Telegram\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"الملف كبير جدا بالنسبة لي لإرساله إليك\\n\\n\"\n\"لاحظ أن هذا الحد يتم فرضه بواسطة Telegram ولا يوجد شيء يمكنني القيام به ما لم يغيره Telegram\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"ملفك ليس صورة، يرجى المحاولة مرة أخرى\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"لم يتم العثور على صورة في رسالتك\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"ملفك ليس ملف PDF، يرجى المحاولة مرة أخرى\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"تم الغاء الامر\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"هاهو ملفك الناتج\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"تخطي\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"أرسل لي النص الذي تريد أن تكتبه في ملفك ال بي دي اف\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"أرسل لي الخط الذي تريد استخدامه لملف PDF أو اضغط {skip} لاستخدام الخط الافتراضي\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"انظر هنا للحصول على قائمة الخطوط المعتمدة: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"خط غير معروف، الرجاء المحاولة مرة أخرى\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"أنشئ ملفك ال بي دي اف\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"أرسل الملف الذي تريد أن يكون له علامة مائية\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"أرسل ملف العلامة المائية PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"جاري اضافة العلامة المائية\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"لقد أرسلت لي صفحة الويب هذه بالفعل وما زلت أقوم بتحويلها\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"تحويل صفحة الويب الخاصة بك إلى ملف PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"تعذر الوصول إلى صفحة الويب الخاصة بك\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"فشل في تحويل صفحة الويب الخاصة بك\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/ca_ES/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: ca\\n\"\n\"Language-Team: Catalan\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: ca\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Cancelar\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Fet\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Enrera\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Alguna cosa ha fallat, torneu a començar amb el vostre fitxer o ordre\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"No s'ha pogut completar el procés\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Benvinguts al PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Característiques clau:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Comprimir, combinar, previsualitzar, canviar el nom, dividir i afegir marca d'aigua als fitxers PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Crear fitxers PDF a partir de missatges de text\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Extreure imatges i text d'arxius PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Convertir arxius PDF en imatges\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Convertir pàgines web i imatges en arxius PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Imatges de notes manuscrites embellidores en arxius PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- I més...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Tipus {command} per veure com utilitzar PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Defineix l'idioma 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Entrar a un canal\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Ajuda PDF bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Podeu realitzar la majoria de les tasques enviant-me una de les següents:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- Arxius PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Imatges\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Enllaços de pàgines web\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"La resta de tasques es poden dur a terme mitjançant les ordres següents:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - compareu els fitxers PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} : combina fitxers PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} : converteix i combina diverses imatges en fitxers PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} : creeu fitxers PDF a partir de missatges de text\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - afegiu la marca d'aigua als fitxers PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Envia'm un dels arxius PDF que t'agradaria comparar\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Tingueu en compte que només puc buscar diferències de text\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Envia’m un altre arxiu PDF que volguis comparar\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Comparant els arxius PDF\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"No hi ha diferències de text entre els fitxers PDF\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Alguna cosa ha fallat, si us plau, torneu-ho a provar.\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"El botó ha caducat, torneu a començar amb el vostre fitxer o ordre\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"La imatge resultant no és vàlida, torna-ho a provar\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Envia'm els teus comentaris en anglès\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Els comentaris no estan en anglès, intenta-ho de nou\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Gràcies pels teus comentaris, els he reenviat al meu desenvolupador\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"El teu arxiu és massa gran per a mi per descarregar-lo i processar-lo\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Tingueu en compte que això és una limitació de Telegram Bot i no hi ha res que pugui fer a menys que Telegram canviï aquest límit\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Tramitació de l'expedient\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Seleccioneu la tasca que voleu dur a terme\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Millorar\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"A un PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Suprimeix l'últim fitxer\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Envia'm les imatges que t'agradaria embellir o convertir en un arxiu PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Tingueu en compte que les imatges s'embelliran i es convertiran en l'ordre que m'envieu\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"M'has enviat aquestes imatges fins ara:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Seleccioneu la tasca des de baix si m'heu enviat totes les imatges o seguiu enviant-me les imatges\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Ja has eliminat totes les imatges que m'has enviat\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} s'ha suprimit\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"No m'has enviat cap imatge\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Només m'has enviat una imatge\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Embellir i convertir les teves imatges en un arxiu PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Conversió de les vostres imatges en un fitxer PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Selecciona l'idioma\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"La teva llengua està preparada per {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Envia'm els fitxers PDF que t'agradaria combinar\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Tingueu en compte que els fitxers es combinaran en l'ordre que m'envieu\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"M'has enviat aquests arxius PDF fins ara:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Premeu {done} si m'heu enviat tots els fitxers PDF que voleu combinar o continueu enviant-me els fitxers PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Ja has suprimit tots els arxius PDF que m'has enviat\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} s'ha suprimit per combinar\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"No has enviat cap arxiu PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Només m'has enviat un arxiu PDF\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Unint els teus arxius PDF\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Digues gràcies\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Cafè\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Cervesa\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Àpat\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Selecciona com vols l'ajuda PDF bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Agraeix PDF bot i ajuda al seu manteniment\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Alguna cosa ha fallat, torna-ho a provar\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Gràcies pel teu suport!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Ajuda traducció PDF bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"El fitxer PDF està encriptat, desxifra'l primer i torna-ho a provar\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"El teu arxiu PDF no està encriptat\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Contrasenya incorrecta, torneu-ho a provar\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"El fitxer PDF està xifrat amb un mètode que no puc desxifrar\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"No s'ha trobat cap imatge al fitxer PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"No s'ha trobat cap text al fitxer PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"No he pogut fusionar els vostres fitxers PDF ja que aquest fitxer no és vàlid: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"El fitxer PDF ja té una capa de text\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"El fitxer PDF no és vàlid\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Comprimir\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Mida del fitxer reduïda en {percent}, de {old_size} a {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Per percentatge\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"A la mida del marge\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Envia'm un número entre 0 i 100\\n\\n\"\n\"Aquest és el percentatge d'espai de marge a retenir entre el contingut del teu arxiu PDF i la pàgina\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Envieu-me un número que voldreu ajustar la mida del marge\\n\\n\"\n\"Els números positius disminuiran la mida del marge i els números negatius l'augmentaran\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Retallar\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Seleccioneu el tipus de cultiu que voleu realitzar\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Els valors de cultiu no són vàlids, torna-ho a provar\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Desxifrar\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Enviï'm la contrasenya per desxifrar el seu arxiu pdf\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Encriptar\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Enviï'm la contrasenya per encriptar el seu arxiu pdf\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Extreure imatges\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Extreure text\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Escala de grisos\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"A les imatges\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Previsualitzar\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Renombrar\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Els noms dels fitxers no poden contenir cap dels caràcters següents, torneu-ho a provar:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Enviï'm el nom d'arxiu que li agradarà rebatejar el seu arxiu pdf a\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Girar\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Seleccioneu els graus que voleu girar el fitxer PDF en sentit horari\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Per factors\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"A la dimensió\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Envieu-me els factors d'escala dels eixos horitzontals i verticals\\n\\n\"\n\"Exemple: 2 0,5: això duplicarà l'eix horitzontal i reduirà a la meitat l'eix vertical\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Envieu-me l'amplada i l'alçada\\n\\n\"\n\"Exemple: 150 200: això establirà l'amplada a 150 i l'alçada a 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Escalar\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Seleccioneu el tipus d'escala que voleu realitzar\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Els valors de l'escala no són vàlids, torna-ho a provar\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Divideix\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"L'interval de divisió no és vàlid, torneu-ho a provar\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Envia'm l'interval de pàgines que t'agradaria conservar\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Ús general\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      totes les pàgines\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"només {range}      pàgina 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    tres primeres pàgines\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     des de la pàgina 8 en endavant\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"només {range}     'última pàgina\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    totes les pàgines excepte l'última\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"només {range}     segona pàgina\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    dues últimes pàgines\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  tercera i segona pàgines\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Ús avançat\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    pàgines {pages} i fins al final\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} pàgines {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   totes les pàgines en ordre invertit\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} pàgines {pages} excepte {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  pàgines {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"El vostre fitxer és massa gran per baixar-lo i processar-lo, torneu-ho a provar amb un fitxer diferent\\n\\n\"\n\"Tingueu en compte que Telegram aplica aquest límit i no puc fer res tret que Telegram el canviï\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"El fitxer és massa gran per enviar-vos\\n\\n\"\n\"Tingueu en compte que Telegram aplica aquest límit i no hi ha res que pugui fer tret que Telegram el canviï\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"El fitxer no és una imatge, torneu-ho a provar\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"No s'ha trobat cap imatge al missatge\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"El fitxer no és un fitxer PDF, torneu-ho a provar\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Acció cancelada\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Aquest és l’arxiu resultant\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Saltar\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Enviï'm el text que li agradarà escriure al seu arxiu pdf\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Envia'm el tipus de lletra que t'agradarà utilitzar per al fitxer PDF o prem {skip} per utilitzar el tipus de lletra per defecte\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Vegeu aquí la llista de tipus de lletra compatibles: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Tipus de lletra desconegut, torneu-ho a provar\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Creació del fitxer PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Envia'm el fitxer PDF que t'agradarà afegir una filigrana\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Enviï'm l'arxiu pdf de filigrana\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Addició de la filigrana al fitxer PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Ja m'heu enviat aquesta pàgina web i encara l'estic convertint\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Conversió de la pàgina web en un fitxer PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"No es pot accedir a la vostra pàgina web\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"No s'ha pogut convertir la vostra pàgina web\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/cs_CZ/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: cs\\n\"\n\"Language-Team: Czech\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: cs\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Zrušit\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Udělal\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Zpět\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Něco se pokazilo, začněte znovu se souborem nebo příkazem\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Proces se nezdařil\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Vítejte v PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Klíčové vlastnosti:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Komprimovat, sloučit, zobrazit náhled, přejmenovat, rozdělit a přidat vodoznak do souborů PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Vytváření souborů PDF z textových zpráv\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Extrahování obrázků a textu ze souborů PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Převod souborů PDF na obrazy\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Převod webových stránek a obrázků do souborů PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Zkrášlujte ručně psané obrázky poznámek do souborů PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- A další...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Zadáním {command} , jak používat PDF Bota\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Nastavit jazyk 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Připojit se k kanálu\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Podpora PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Většinu úkolů můžete provést zasláním jedné z následujících akcí:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- Soubory PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Obrázky\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Odkazy na webové stránky\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Zbytek úkolů lze provést pomocí následujících příkazů:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - porovnat soubory PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - sloučit soubory PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - převést a kombinovat více obrázků do souborů PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - vytváření souborů PDF z textových zpráv\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - přidání vodoznaku do souborů PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Pošlete mi jeden ze souborů PDF, který chcete porovnat\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Všimněte si, že lze hledat pouze textové rozdíly\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Pošlete mi další soubor PDF, který budete chtít porovnat\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Porovnání souborů PDF\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Mezi soubory PDF nejsou žádné textové rozdíly\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Něco se pokazilo, zkuste to prosím znovu.\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Platnost tlačítka vypršela, začněte znovu se souborem nebo příkazem\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Výsledný obrázek je neplatný, zkuste to znovu\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Pošlete mi svůj názor v angličtině\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Zpětná vazba není v angličtině, zkuste to znovu\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Děkuji za vaši zpětnou vazbu, přeposlal jsem ji svému vývojáři\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Váš soubor je příliš velký na to, abych ho stahoval a zpracovávám.\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Všimněte si, že se jedná o omezení Telegram Bot a není nic, co bych mohl udělat, pokud Telegram nezmění tento limit\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Zpracování souboru\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Vyberte úkol, který chcete provést\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Zkrášlit\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Do PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Odebrat poslední soubor\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Pošlete mi obrázky, které budete chtít zkrášlit nebo převést do souboru PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Všimněte si, že obrázky budou zkrášleny a převedeny v pořadí, ve kterém mi pošlete\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Zatím jste mi poslali tyto obrázky:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Vyberte úkol zespodu, pokud jste mi poslali všechny obrázky, nebo mi je pošlete dál\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Už jste odstranili všechny obrázky, které jste mi poslali\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} byl odstraněn\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Neposlali jste mi žádné obrázky\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Poslal jsi mi jen jeden obrázek\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Zkrášlení a převod obrázků do souboru PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Převod obrázků do souboru PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Vyberte si jazyk\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Váš jazyk byl nastaven na {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Pošlete mi soubory PDF, které chcete sloučit\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Všimněte si, že soubory budou sloučeny v pořadí, v pořadí, v které mi budete\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Zatím jste mi poslali tyto soubory PDF:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Stiskněte {done} , pokud jste mi poslali všechny soubory PDF, které chcete sloučit, nebo mi stále posílají soubory PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Už jste odstranili všechny soubory PDF, které jste mi poslali\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} odebrána pro sloučení\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Neposlal jsi mi žádné soubory PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Poslali jste mi jen jeden soubor PDF.\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Sloučení souborů PDF\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Řekni díky\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Káva\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Pivo\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Jídlo\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Vyberte, jak chcete podporovat PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Řekněte díky PDF Bot a pomozte udržet ho v chodu\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Něco se pokazilo, zkuste to znovu\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Děkujeme vám za vaši podporu!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Nápověda přeložit PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Soubor PDF je zašifrovaný, nejprve jej dešifrujte a zkuste to znovu\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Soubor PDF není zašifrován\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Nesprávné heslo, zkuste to prosím znovu\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Soubor PDF je zašifrován metodou, kterou 1 000 000 000 000 000 000 000 000 000 00\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"V souboru PDF nebyly nalezeny žádné obrázky\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"V souboru PDF nebyl nalezen žádný text\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Nepodařilo se mi sloučit soubory PDF, protože tento soubor je neplatný: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Soubor PDF už má textovou vrstvu\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Soubor PDF je neplatný\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Komprimovat\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Velikost souboru zmenšená o {percent}, z {old_size} na {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Podle procenta\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"K velikosti okraje\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Pošlete mi číslo mezi 0 a 100\\n\\n\"\n\"Jedná se o procento okrajového prostoru, který má být zachován mezi obsahem souboru PDF a stránkou\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Pošlete mi číslo, na kterém chcete upravit velikost okraje\\n\\n\"\n\"Kladná čísla zmenší velikost marže a záporná čísla ji zvýší\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Plodin\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Vyberte typ oříznutí, který chcete provést\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Hodnoty oříznutí jsou neplatné, zkuste to znovu\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Dešifrování\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Pošlete mi heslo k dešifrování souboru PDF\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Šifrování\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Pošlete mi heslo k šifrování souboru PDF\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Extrahování obrázků\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Extrahování textu\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Stupně šedi\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"K obrázkům\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Náhled\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Přejmenovat\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Názvy souborů nesmí obsahovat žádný z následujících znaků, zkuste to prosím znovu:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Pošlete mi název souboru, do kterého chcete soubor PDF přejmenovat\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Otočit\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Vyberte stupně, které chcete otočit soubor PDF ve směru hodinových ručiček\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Podle faktoru\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Do dimenze\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Pošlete mi měřítko pro vodorovnou a svislou osu\\n\\n\"\n\"Příklad: 2 0,5 - tím se vodorovná osa zdvojnásobí a svislá osa se sníží na polovinu\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Pošlete mi šířku a výšku\\n\\n\"\n\"Příklad: 150 200 - tím nastavíte šířku na 150 a výšku na 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Měřítko\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Vyberte typ váhy, který chcete provést\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Hodnoty měřítka jsou neplatné, zkuste to znovu\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Rozdělit\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Rozsah rozdělení je neplatný, zkuste to prosím znovu\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Pošlete mi rozsah stránek, které si budete chtít ponechat\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Obecné použití\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      všech stránkách\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      strana 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    tři stránky\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     od strany 8 dále\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     poslední stránka\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    stránky kromě poslední stránky\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     poslední stránka\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    dvě stránky\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  třetí a druhá poslední stránka\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Pokročilé použití\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    stránky {pages} a až do konce\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} stránky {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   stránky v obráceném pořadí\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} stránky {pages} kromě {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  stránky {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Váš soubor je příliš velký na to, abych jej stáhl a zpracoval, zkuste to prosím znovu s jiným souborem\\n\\n\"\n\"Všimněte si, že tento limit je vynucován Telegramem a nemohu nic dělat, pokud jej Telegram nezmění\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Soubor je příliš velký na to, abych vám ho poslal\\n\\n\"\n\"Všimněte si, že tento limit je vynucen Telegramem a není nic, co bych mohl udělat, pokud to Telegram nezmění\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Váš soubor není obrázek, zkuste to prosím znovu\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Ve zprávě nebyl nalezen žádný obrázek\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Soubor není souborEM PDF, opakujte akci\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Akce byla zrušena\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Zde je váš výsledný soubor\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Přeskočit\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Pošlete mi text, který budete chtít napsat do souboru PDF\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Pošlete mi písmo, které chcete použít pro soubor PDF, nebo stiskněte klávesu {skip} použijte výchozí písmo\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Seznam podporovaných písem najdete zde: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Neznámé písmo, opakujte akci\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Vytvoření souboru PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Pošlete mi soubor PDF, který chcete přidat vodoznak\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Pošlete mi soubor PDF s vodoznakem\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Přidání vodoznaku do souboru PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Tuto webovou stránku jste mi již poslali a stále ji konvertuji\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Převod webové stránky do souboru PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Nelze se dostat na webovou stránku\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Nepodařilo se převést webovou stránku\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/da_DK/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: da\\n\"\n\"Language-Team: Danish\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: da\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Annullere\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Gjort\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Tilbage\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Noget gik galt, start forfra med din fil eller kommando\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Kunne ikke fuldføre processen\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Velkommen til PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Vigtigste funktioner:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Komprimere, flette, få vist, omdøbe, opdele og føje vandmærke til PDF-filer\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Oprette PDF-filer ud fra sms'er\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Uddrag billeder og tekst fra PDF-filer\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Konverter PDF-filer til billeder\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Konvertere websider og billeder til PDF-filer\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Forskøn håndskrevne noter billeder i PDF-filer\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Og meget mere...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Skriv {command} for at se, hvordan DU bruger PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Sæt Sprog 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Tilmeld dig kanal\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Understøttelse af PDF-bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Du kan udføre de fleste af opgaverne ved at sende mig en af følgende:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF-filer\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Billeder\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Links til websider\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Resten af opgaverne kan udføres ved hjælp af følgende kommandoer:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - sammenlign PDF-filer\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - flet PDF-filer\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - konvertere og kombinere flere billeder i PDF-filer\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - oprette PDF-filer ud fra tekstbeskeder\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - føj vandmærke til PDF-filer\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Send mig en af de PDF-filer, som du gerne vil sammenligne\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Bemærk, at jeg kun kan søge efter tekstforskelle\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Send mig den anden PDF-fil, som du gerne vil sammenligne\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Sammenligning af dine PDF-filer\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Der er ingen tekstforskelle mellem PDF-filerne\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Hvis noget gik galt, skal du prøve igen\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Knappen er udløbet, start forfra med din fil eller kommando\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Det resulterende billede er ugyldigt, prøv igen\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Send mig din feedback på engelsk\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Tilbagemeldingerne er ikke på engelsk, prøv igen\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Tak for din feedback, jeg har videresendt den til min udvikler\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Din fil er for stor til, at jeg kan downloade og behandle\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Bemærk, at dette er en Telegram Bot-begrænsning, og der er intet, jeg kan gøre, medmindre Telegram ændrer denne grænse\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Behandling af din fil\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Vælg den opgave, du vil udføre\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Forskønne\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Til PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Fjern sidste fil\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Send mig de billeder, du gerne vil forskønne eller konvertere til en PDF-fil\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Bemærk, at billederne vil blive forskønnet og konverteret i den rækkefølge, du sender mig\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Du har sendt mig disse billeder indtil videre:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Vælg opgaven nedefra, hvis du har sendt mig alle billederne, eller fortsæt med at sende mig billederne\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Du har allerede fjernet alle de billeder, du har sendt mig\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} er blevet fjernet\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Du har ikke sendt mig nogen billeder\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Du har kun sendt mig ét billede\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Forskønne og konvertere dine billeder til en PDF-fil\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Konvertering af dine billeder til en PDF-fil\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Vælg dit sprog\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Dit sprog er indstillet til {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Send mig de PDF-filer, du vil flette\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Bemærk, at filerne flettes i den rækkefølge, du sender mig\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Du har sendt mig disse PDF-filer indtil videre:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Tryk på {done} hvis du har sendt mig alle de PDF-filer, du gerne vil flette eller fortsætte med at sende mig PDF-filer\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Du har allerede fjernet alle de PDF-filer, du har sendt mig\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} er blevet fjernet til fletning\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Du har ikke sendt mig nogen PDF-filer\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Du har kun sendt mig én PDF-fil\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Fletning af PDF-filer\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Sig tak\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Kaffe\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Øl\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Måltid\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Vælg, hvordan du vil understøtte PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Sig tak til PDF Bot og hjælpe med at holde det kørende\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Noget gik galt, prøv igen\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Tak for din støtte!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Hjælp med at oversætte PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Din PDF-fil er krypteret, dekrypter den først og prøv derefter igen\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"PDF-filen er ikke krypteret\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Forkert adgangskode, prøv igen\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"PDF-filen er krypteret med en metode, som jeg ikke kan dekryptere\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Ingen billeder fundet i din PDF-fil\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Der blev ikke fundet nogen tekst i din PDF-fil\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Jeg kunne ikke flette dine PDF-filer, da denne fil er ugyldig: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"PDF-filen har allerede et tekstlag\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Din PDF fil er ugyldig\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Komprimere\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Filstørrelsen reduceres med {percent}fra {old_size} til {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"I procent\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Til margenstørrelse\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Send mig et tal mellem 0 og 100\\n\\n\"\n\"Dette er den procentdel af margenpladsen, der skal bevares mellem indholdet i din PDF-fil og siden\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Send mig et tal, som du gerne vil justere margenstørrelsen\\n\\n\"\n\"Positive tal reducerer margenstørrelsen, og negative tal øger den\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Afgrøde\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Vælg den beskæringstype, du vil udføre\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Beskæringsværdierne er ugyldige, prøv igen\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Dekryptere\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Send mig adgangskoden til at dekryptere din PDF-fil\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Kryptere\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Send mig adgangskoden til at kryptere din PDF-fil\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Uddrag billeder\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Uddrag tekst\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Gråtoner\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Til billeder\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Preview\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Omdøbe\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Filnavne må ikke indeholde nogen af følgende tegn, prøv igen:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Send mig det filnavn, du vil omdøbe din PDF-fil til\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Rotere\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Vælg de grader, du vil rotere PDF-filen med uret\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Efter faktor\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Til dimension\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Send mig skaleringsfaktorerne for de vandrette og lodrette akser\\n\\n\"\n\"Eksempel: 2 0,5 - dette vil fordoble den vandrette akse og halvere den lodrette akse\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Send mig bredden og højden\\n\\n\"\n\"Eksempel: 150 200 - dette indstiller bredden til 150 og højden til 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Skala\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Vælg den skalatype, du vil udføre\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Skaleringsværdierne er ugyldige, prøv igen\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Split\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Det opdelte interval er ugyldigt, prøv igen\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Send mig det udvalg af sider, du gerne vil beholde\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Generel brug\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      alle sider\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      kun side 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    første tre sider\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     fra side 8 og fremefter\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     kun sidste side\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    alle sider undtagen den sidste side\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     kun næstsidste side\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    sidste to sider\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  tredje og næstsidste side\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Avanceret brug\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    sider {pages} og til slutningen\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} sider {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   alle sider i omvendt rækkefølge\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} sider {pages} undtagen {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  sider {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Din fil er for stor til, at jeg kan downloade og behandle, prøv igen med en anden fil\\n\\n\"\n\"Bemærk, at denne grænse håndhæves af Telegram, og der er intet, jeg kan gøre, medmindre Telegram ændrer det\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Filen er for stor til, at jeg kan sende til dig\\n\\n\"\n\"Bemærk, at denne grænse håndhæves af Telegram, og der er intet, jeg kan gøre, medmindre Telegram ændrer den\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Din fil er ikke et billede, prøv igen\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Der blev ikke fundet noget billede i din besked\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Filen er ikke en PDF-fil.\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Handlingen blev annulleret\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Her er din resultatfil\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Overspringe\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Send mig den tekst, du gerne vil skrive i din PDF-fil\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Send mig den skrifttype, du vil bruge til PDF-filen, eller tryk på {skip} for at bruge standardskrifttypen\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Se listen over understøttede skrifttyper her: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Ukendt skrifttype, prøv igen\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Oprette din PDF-fil\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Send mig den PDF-fil, du vil tilføje et vandmærke\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Send mig PDF-filen til vandmærket\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Føje vandmærket til PDF-filen\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Du har allerede sendt mig denne webside, og jeg konverterer den stadig\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Konvertering af din webside til en PDF-fil\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Kan ikke nå din webside\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Kunne ikke konvertere din webside\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/de_DE/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: de\\n\"\n\"Language-Team: German\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: de\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Abbrechen\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Fertig\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Zurück\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Etwas ist schief gelaufen, beginnen Sie mit Ihrer Datei oder Ihrem Befehl von vorne\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Der Vorgang konnte nicht abgeschlossen werden\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Willkommen bei PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Hauptmerkmale:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Komprimieren, Zusammenführen, Vorschau, Umbenennen, Teilen und Hinzufügen von Wasserzeichen zu PDF-Dateien\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Pdf-Dateien aus Textnachrichten erstellen\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Extrahieren Sie Bilder und Text aus PDF-Dateien\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Konvertieren Sie PDF-Dateien in Bilder\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Konvertieren Sie Webseiten und Bilder in PDF-Dateien\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Verschönern Sie handschriftliche Notizenbilder in PDF-Dateien\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Und mehr...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Geben Sie {command} ein, um zu sehen, wie PDF Bot verwendet wird\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Sprache festlegen 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Join Channel\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Unterstützung PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Sie können die meisten Aufgaben ausführen, indem Sie mir eine der folgenden Vorgänge senden:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF-Dateien\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Bilder\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Webseiten-Links\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Die restlichen Aufgaben können mit den folgenden Befehlen ausgeführt werden:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - PDF-Dateien vergleichen\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - PDF-Dateien zusammenführen\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - Konvertieren und Kombinieren mehrerer Bilder in PDF-Dateien\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - PDF-Dateien aus Textnachrichten erstellen\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - Wasserzeichen zu PDF-Dateien hinzufügen\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Senden Sie mir eine der PDF-Dateien, die Sie vergleichen möchten\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Beachten Sie, dass ich nur nach Textunterschieden suchen kann\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Schicken Sie mir die andere PDF-Datei, die Sie vergleichen möchten\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Vergleichen Ihrer PDF-Dateien\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Es gibt keine Textunterschiede zwischen Ihren PDF-Dateien\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Etwas ist schief gelaufen, bitte versuchen Sie es erneut\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Die Schaltfläche ist abgelaufen, beginnen Sie mit Ihrer Datei oder Ihrem Befehl von vorne.\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Das resultierende Bild ist ungültig, versuchen Sie es erneut\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Senden Sie mir Ihr Feedback auf Englisch\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Das Feedback ist nicht auf Englisch, versuchen Sie es erneut\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Vielen Dank für Ihr Feedback, ich habe es an meinen Entwickler weitergeleitet\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Ihre Datei ist zu groß, als dass ich sie herunterladen und verarbeiten könnte\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Beachten Sie, dass dies eine Telegram Bot-Einschränkung ist und ich nichts tun kann, es sei denn, Telegram ändert dieses Limit\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Verarbeiten Ihrer Datei\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Wählen Sie die Aufgabe aus, die Sie ausführen möchten\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Verschönern\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Zum PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Letzte Datei entfernen\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Senden Sie mir die Bilder, die Sie verschönern oder in eine PDF-Datei konvertieren möchten\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Beachten Sie, dass die Bilder in der Reihenfolge, in der Sie mir senden, verschönert und konvertiert werden\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Ihr habt mir bisher diese Bilder geschickt:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Wählen Sie die Aufgabe von unten aus, wenn Sie mir alle Bilder geschickt haben, oder senden Sie mir weiterhin die Bilder\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Sie haben bereits alle Bilder entfernt, die Sie mir gesendet haben\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} wurde entfernt\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Sie haben mir keine Bilder geschickt\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Sie haben mir nur ein Bild geschickt\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Verschönern und Konvertieren Ihrer Bilder in eine PDF-Datei\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Konvertieren Sie Ihre Bilder in eine PDF-Datei\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Wählen Sie Ihre Sprache\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Ihre Sprache wurde auf {language}eingestellt\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Senden Sie mir die PDF-Dateien, die Sie zusammenführen möchten\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Beachten Sie, dass die Dateien in der Reihenfolge zusammengeführt werden, in der Sie mich senden\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Sie haben mir bisher diese PDF-Dateien geschickt:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Drücken Sie {done} , wenn Sie mir alle PDF-Dateien gesendet haben, die Sie zusammenführen möchten, oder senden Sie mir weiterhin die PDF-Dateien\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Sie haben bereits alle PDF-Dateien entfernt, die Sie mir gesendet haben\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} wurde für die Zusammenführung entfernt\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Sie haben mir keine PDF-Dateien gesendet\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Sie haben mir nur eine PDF-Datei geschickt\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Zusammenführen Ihrer PDF-Dateien\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Danke sagen\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Kaffee\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Bier\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Mahlzeit\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Wählen Sie aus, wie Sie PDF Bot unterstützen möchten\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Sagen Sie danke an PDF Bot und helfen Sie, es am Laufen zu halten\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Etwas ist schief gelaufen, versuchen Sie es erneut\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Vielen Dank für Ihre Unterstützung!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Hilfe beim Übersetzen von PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Ihre PDF-Datei ist verschlüsselt, entschlüsseln Sie sie zuerst und versuchen Sie es erneut.\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Ihre PDF-Datei ist nicht verschlüsselt\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Falsches Passwort, bitte versuchen Sie es erneut\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Ihre PDF-Datei wird mit einer Methode verschlüsselt, die ich nicht entschlüsseln kann\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Keine Bilder in Ihrer PDF-Datei gefunden\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Kein Text in Ihrer PDF-Datei gefunden\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Ich konnte Ihre PDF-Dateien nicht zusammenführen, da diese Datei ungültig ist: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Ihre PDF-Datei hat bereits eine Textebene\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Ihre PDF-Datei ist ungültig\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Komprimieren\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Dateigröße um {percent}reduziert, von {old_size} auf {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Nach Prozent\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Zur Randgröße\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Senden Sie mir eine Zahl zwischen 0 und 100\\n\\n\"\n\"Dies ist der Prozentsatz des Randabstands, der zwischen dem Inhalt Ihrer PDF-Datei und der Seite beibehalten werden soll.\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Senden Sie mir eine Zahl, mit der Sie die Randgröße anpassen möchten\\n\\n\"\n\"Positive Zahlen verringern die Margengröße und negative Zahlen erhöhen sie\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Ernte\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Wählen Sie den Zuschneidetyp aus, den Sie ausführen möchten\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Die Zuschneidewerte sind ungültig, versuchen Sie es erneut.\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Entschlüsseln\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Senden Sie mir das Passwort, um Ihre PDF-Datei zu entschlüsseln\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Verschlüsseln\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Senden Sie mir das Passwort, um Ihre PDF-Datei zu verschlüsseln\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Bilder extrahieren\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Text extrahieren\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Graustufen\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Zu den Bildern\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Vorschau\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Umbenennen\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Dateinamen dürfen keines der folgenden Zeichen enthalten, versuchen Sie es erneut:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Senden Sie mir den Dateinamen, in den Sie Ihre PDF-Datei umbenennen möchten\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Drehen\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Wählen Sie die Grade aus, die Sie Ihre PDF-Datei im Uhrzeigersinn drehen möchten\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Nach Faktor\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Zur Dimension\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Senden Sie mir die Skalierungsfaktoren für die horizontale und vertikale Achse\\n\\n\"\n\"Beispiel: 2 0,5 - dies verdoppelt die horizontale Achse und halbiert die vertikale Achse\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Senden Sie mir die Breite und Höhe\\n\\n\"\n\"Beispiel: 150 200 - dies wird die Breite auf 150 und die Höhe auf 200 einstellen\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Skala\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Wählen Sie den Skalierungstyp aus, den Sie ausführen möchten\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Die Skalierungswerte sind ungültig, versuchen Sie es erneut.\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Trennen\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Der Split-Bereich ist ungültig, bitte versuchen Sie es erneut\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Senden Sie mir den Seitenbereich, den Sie behalten möchten\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Allgemeine Nutzung\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      alle Seiten\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      nur Seite 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    ersten drei Seiten\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     ab Seite 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"nur {range}     letzte Seite\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    alle Seiten außer der letzten Seite\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     vorletzte Seite\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    letzten beiden Seiten\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  dritt- und vorletzte Seite\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Erweiterte Nutzung\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    Seiten {pages} und bis zum Ende\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} Seiten {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   alle Seiten in umgekehrter Reihenfolge\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} Seiten {pages} außer {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  Seiten {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Ihre Datei ist zu groß für mich, um sie herunterzuladen und zu verarbeiten, bitte versuchen Sie es erneut mit einer anderen Datei\\n\\n\"\n\"Beachten Sie, dass dieses Limit von Telegram durchgesetzt wird und ich nichts tun kann, es sei denn, Telegram ändert es\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Die Datei ist zu groß, als dass ich sie Ihnen senden\\n\\n\"\n\"Beachten Sie, dass dieses Limit von Telegram erzwungen wird und ich nichts tun kann, es sei denn, Telegram ändert es\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Ihre Datei ist kein Bild, bitte versuchen Sie es erneut\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"In Ihrer Nachricht wurde kein Bild gefunden\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Ihre Datei ist keine PDF-Datei, bitte versuchen Sie es erneut\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Aktion abgebrochen\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Hier ist Ihre Ergebnisdatei\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Hüpfen\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Senden Sie mir den Text, den Sie in Ihre PDF-Datei schreiben möchten\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Senden Sie mir die Schriftart, die Sie für die PDF-Datei verwenden möchten, oder drücken Sie {skip} , um die Standardschriftart zu verwenden\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Hier finden Sie eine Liste der unterstützten Schriftarten: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Unbekannte Schriftart, bitte versuchen Sie es erneut\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Erstellen Ihrer PDF-Datei\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Senden Sie mir die PDF-Datei, die Sie ein Wasserzeichen hinzufügen möchten\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Schicken Sie mir die Wasserzeichen-PDF-Datei\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Hinzufügen des Wasserzeichens zu Ihrer PDF-Datei\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Sie haben mir diese Webseite bereits geschickt und ich bin immer noch dabei, sie zu konvertieren\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Konvertieren Ihrer Webseite in eine PDF-Datei\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Ihre Webseite kann nicht erreicht werden\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Webseite konnte nicht konvertiert werden\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/el_GR/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: el\\n\"\n\"Language-Team: Greek\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: el\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Ακυρώσετε\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Γίνει\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Πίσω\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Παρουσιάστηκε κάποιο πρόβλημα, ξεκινήστε από την αρχή με το αρχείο ή την εντολή σας\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Απέτυχε η ολοκλήρωση της διαδικασίας\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Καλώς ήρθατε στο PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Βασικά χαρακτηριστικά:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Συμπίεση, συγχώνευση, προεπισκόπηση, μετονομασία, διαίρεση και προσθήκη υδατογραφήματος σε αρχεία PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Δημιουργία αρχείων PDF από μηνύματα κειμένου\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Εξαγωγή εικόνων και κειμένου από αρχεία PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Μετατροπή αρχείων PDF σε εικόνες\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Μετατροπή ιστοσελίδων και εικόνων σε αρχεία PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Ομορφύνετε χειρόγραφες εικόνες σημειώσεων σε αρχεία PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Και περισσότερο...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Πληκτρολογήστε {command} για να δείτε πώς να χρησιμοποιήσετε το PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Ορισμός γλώσσας 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Είσοδος στο Κανάλι\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Υποστήριξη BOT PDF\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Μπορείτε να εκτελέσετε τις περισσότερες από τις εργασίες στέλνοντας μου ένα από τα εξής:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- Αρχεία PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Εικόνες\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Σύνδεσμοι ιστοσελίδων\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Οι υπόλοιπες εργασίες μπορούν να εκτελεστούν χρησιμοποιώντας τις ακόλουθες εντολές:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - σύγκριση αρχείων PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - συγχώνευση αρχείων PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - μετατρέψτε και συνδυάστε πολλές εικόνες σε αρχεία PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - δημιουργία αρχείων PDF από μηνύματα κειμένου\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - προσθήκη υδατογραφήματος σε αρχεία PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Στείλτε μου ένα από τα αρχεία PDF που θέλετε να συγκρίνετε\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Σημειώστε ότι μπορώ να αναζητήσω μόνο διαφορές κειμένου\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Στείλτε μου το άλλο αρχείο PDF που θα σας αρέσει να συγκρίνετε\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Σύγκριση των αρχείων PDF\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Δεν υπάρχουν διαφορές κειμένου μεταξύ των αρχείων PDF\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Κάτι πήγε στραβά, προσπαθήστε ξανά.\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Το κουμπί έχει λήξει, ξεκινήστε από την αρχή με το αρχείο ή την εντολή σας\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Η εικόνα που προέκυψε δεν είναι έγκυρη, προσπαθήστε ξανά\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Στείλτε μου τα σχόλιά σας στα Αγγλικά\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Τα σχόλια δεν είναι στα Αγγλικά, δοκιμάστε ξανά\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Σας ευχαριστώ για τα σχόλιά σας, τα προώθησα στον προγραμματιστή μου\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Το αρχείο σας είναι πολύ μεγάλο για να το κατεβάσω και να το επεξεργαστώ.\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Σημειώστε ότι αυτός είναι ένας περιορισμός Bot τηλεγραφήματος και δεν μπορώ να κάνω τίποτα αν το Telegram αλλάξει αυτό το όριο\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Επεξεργασία του αρχείου σας\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Επιλέξτε την εργασία που θα θέλατε να εκτελέσετε\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Ομορφύνει\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Σε PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Κατάργηση τελευταίου αρχείου\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Στείλτε μου τις εικόνες που θέλετε να ομορφύνετε ή να μετατρέψετε σε αρχείο PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Σημειώστε ότι οι εικόνες θα ομορφύνονται και θα μετατρέπονται με τη σειρά που θα μου στείλετε\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Μου έχετε στείλει αυτές τις εικόνες μέχρι στιγμής:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Επιλέξτε την εργασία από κάτω αν μου έχετε στείλει όλες τις εικόνες ή συνεχίστε να μου στέλνετε τις εικόνες\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Έχετε ήδη καταργήσει όλες τις εικόνες που μου στείλατε\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} καταργήθηκε\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Δεν μου έχετε στείλει εικόνες\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Μου στείλατε μόνο μία εικόνα\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Καλλωπισμός και μετατροπή των εικόνων σας σε αρχείο PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Μετατροπή των εικόνων σας σε αρχείο PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Επιλέξτε τη γλώσσα σας\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Η γλώσσα σας έχει ρυθμιστεί σε {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Στείλτε μου τα αρχεία PDF που θέλετε να συγχωνεύσετε\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Σημειώστε ότι τα αρχεία θα συγχωνευτούν με τη σειρά που θα μου στείλετε\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Μου έχετε στείλει αυτά τα αρχεία PDF μέχρι στιγμής:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Πατήστε {done} αν μου έχετε στείλει όλα τα αρχεία PDF που θέλετε να συγχωνεύσετε ή συνεχίστε να μου στέλνετε τα αρχεία PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Έχετε ήδη αφαιρέσει όλα τα αρχεία PDF που μου στείλατε\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} έχει αφαιρεθεί για συγχώνευση\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Δεν μου έχετε στείλει αρχεία PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Μου έστειλες μόνο ένα αρχείο PDF.\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Συγχώνευση των αρχείων PDF\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Πες ευχαριστώ.\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Καφές\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Μπύρα\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Γεύμα\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Επιλέξτε τον τρόπο με τον οποίο θέλετε να υποστηρίξετε το PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Πείτε ευχαριστώ στο PDF Bot και να βοηθήσει να κρατήσει το τρέξιμο\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Παρουσιάστηκε κάποιο πρόβλημα, προσπαθήστε ξανά\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Σας ευχαριστούμε για την υποστήριξή σας!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Βοήθεια για τη μετάφραση του BOT PDF\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Το αρχείο PDF είναι κρυπτογραφημένο, αποκρυπτογραφήστε το πρώτα και προσπαθήστε ξανά\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Το αρχείο PDF δεν είναι κρυπτογραφημένο\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Εσφαλμένος κωδικός πρόσβασης, προσπαθήστε ξανά\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Το αρχείο PDF κρυπτογραφείται με μια μέθοδο που δεν μπορώ να αποκρυπτογραφήσω\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Δεν βρέθηκαν εικόνες στο αρχείο PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Δεν βρέθηκε κείμενο στο αρχείο PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Δεν μπόρεσα να συγχωνεύσω τα αρχεία PDF σας, καθώς αυτό το αρχείο δεν είναι έγκυρο: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Το αρχείο PDF έχει ήδη ένα επίπεδο κειμένου\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Το αρχείο PDF δεν είναι έγκυρο\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Συμπίεση\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Το μέγεθος του αρχείου μειώθηκε κατά {percent}, από {old_size} σε {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Κατά ποσοστό\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Μετάβαση στο μέγεθος περιθωρίου\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Στείλτε μου έναν αριθμό μεταξύ 0 και 100\\n\\n\"\n\"Αυτό είναι το ποσοστό του χώρου περιθωρίου που πρέπει να διατηρηθεί μεταξύ του περιεχομένου στο αρχείο PDF και της σελίδας\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Στείλτε μου έναν αριθμό που θα θέλατε να προσαρμόσετε το μέγεθος του περιθωρίου\\n\\n\"\n\"Οι θετικοί αριθμοί θα μειώσουν το μέγεθος του περιθωρίου και οι αρνητικοί αριθμοί θα το αυξήσουν\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Καλλιέργεια\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Επιλέξτε τον τύπο περικοπής που θέλετε να εκτελέσετε\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Οι τιμές περικοπής δεν είναι έγκυρες, προσπαθήστε ξανά\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Αποκρυπτογραφήσει\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Στείλτε μου τον κωδικό πρόσβασης για να αποκρυπτογραφήσετε το αρχείο PDF\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Κρυπτογράφηση\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Στείλτε μου τον κωδικό πρόσβασης για να κρυπτογραφήσω το αρχείο PDF\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Εξαγωγή εικόνων\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Εξαγωγή κειμένου\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Κλίμακα του γκρι\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Μετάβαση στις εικόνες\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Προεπισκόπηση\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Μετονομάσετε\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Τα ονόματα αρχείων δεν μπορούν να περιέχουν κανέναν από τους ακόλουθους χαρακτήρες, δοκιμάστε ξανά:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Στείλτε μου το όνομα αρχείου στο οποίο θα θέλετε να μετονομάσετε το αρχείο PDF\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Γυρίζω\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Επιλέξτε τους βαθμούς που θέλετε να περιστρέψετε το αρχείο PDF δεξιόστροφα\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Ανά παράγοντα\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Στη διάσταση\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Στείλτε μου τους συντελεστές κλιμάκωσης για τους οριζόντιους και κάθετους άξονες\\n\\n\"\n\"Παράδειγμα: 2 0,5 - αυτό θα διπλασιάσει τον οριζόντιο άξονα και θα μειώσει κατά το ήμισυ τον κατακόρυφο άξονα\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Στείλτε μου το πλάτος και το ύψος\\n\\n\"\n\"Παράδειγμα: 150 200 - αυτό θα ορίσει το πλάτος σε 150 και το ύψος σε 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Κλίμακα\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Επιλέξτε τον τύπο κλίμακας που θέλετε να εκτελέσετε\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Οι τιμές κλίμακας δεν είναι έγκυρες, προσπαθήστε ξανά\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Σπλιτ\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Το εύρος διαχωρισμού δεν είναι έγκυρο, προσπαθήστε ξανά\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Στείλτε μου το εύρος των σελίδων που θα σας αρέσει να κρατάτε\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Γενική χρήση\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      όλες τις σελίδες\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      σελίδα 8 μόνο\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    τρεις πρώτες σελίδες\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     από τη σελίδα 8 και μετά\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     τελευταία σελίδα μόνο\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    όλες τις σελίδες εκτός από την τελευταία σελίδα\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     δεύτερη τελευταία σελίδα μόνο\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    τελευταίες δύο σελίδες\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  τρίτη και δεύτερη τελευταία σελίδα\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Προηγμένη χρήση\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    σελίδες {pages} και μέχρι το τέλος\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} σελίδες {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   όλες τις σελίδες με αντίστροφη σειρά\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} σελίδες {pages} εκτός από {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  σελίδες {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Το αρχείο σας είναι πολύ μεγάλο για να το κατεβάσω και να το επεξεργαστώ, δοκιμάστε ξανά με διαφορετικό αρχείο\\n\\n\"\n\"Σημειώστε ότι αυτό το όριο επιβάλλεται από το Telegram και δεν μπορώ να κάνω τίποτα εκτός εάν το αλλάξει το Telegram\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Το αρχείο είναι πολύ μεγάλο για να σας στείλω\\n\\n\"\n\"Σημειώστε ότι αυτό το όριο επιβάλλεται από το Telegram και δεν μπορώ να κάνω τίποτα εκτός εάν το Telegram το αλλάξει\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Το αρχείο σας δεν είναι εικόνα, προσπαθήστε ξανά\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Δεν βρέθηκε εικόνα στο μήνυμά σας\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Το αρχείο σας δεν είναι αρχείο PDF, προσπαθήστε ξανά\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Η ενέργεια ακυρώθηκε\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Εδώ είναι το αρχείο αποτελεσμάτων σας\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Πήδημα\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Στείλτε μου το κείμενο που θα σας αρέσει να γράφετε στο αρχείο PDF\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Στείλτε μου τη γραμματοσειρά που θέλετε να χρησιμοποιήσετε για το αρχείο PDF ή πατήστε {skip} για να χρησιμοποιήσετε την προεπιλεγμένη γραμματοσειρά\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Δείτε εδώ για τη λίστα των υποστηριζόμενων γραμματοσειρών: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Άγνωστη γραμματοσειρά, προσπαθήστε ξανά\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Δημιουργία του αρχείου PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Στείλτε μου το αρχείο PDF που θα θέλατε να προσθέσετε ένα υδατογράφημα\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Στείλτε μου το αρχείο PDF υδατογράφημα\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Προσθήκη του υδατογραφήματος στο αρχείο PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Μου έχετε στείλει ήδη αυτήν την ιστοσελίδα και εξακολουθώ να τη μετατρέπω\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Μετατροπή της ιστοσελίδας σας σε αρχείο PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Δεν είναι δυνατή η πρόσβαση στην ιστοσελίδα σας\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Αποτυχία μετατροπής της ιστοσελίδας σας\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/en_GB/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot VERSION\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"\n\"Language: locale\\n\"\n\"Language-Team: locale <LL@li.org>\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=utf-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"\"\n\"Note that this is a Telegram Bot limitation and there's nothing I can do \"\n\"unless Telegram changes this limit\"\nmsgstr \"\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"\"\n\"Note that the images will be beautified and converted in the order that \"\n\"you send me\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"\"\n\"Select the task from below if you've sent me all the images, or keep \"\n\"sending me the images\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"\"\n\"Press {done} if you've sent me all the PDF files that you'll like to \"\n\"merge or keep sending me the PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"\"\n\"Send me a number between 0 and 100\\n\"\n\"\\n\"\n\"This is the percentage of margin space to retain between the content in \"\n\"your PDF file and the page\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"\"\n\"Send me a number that you'll like to adjust the margin size\\n\"\n\"\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will \"\n\"increase it\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"\"\n\"File names can't contain any of the following characters, please try \"\n\"again:\\n\"\n\"%s\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"\"\n\"Send me the scaling factors for the horizontal and vertical axes\\n\"\n\"\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the \"\n\"vertical axis\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"\"\n\"Send me the width and height\\n\"\n\"\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"\"\n\"Your file is too large for me to download and process, please try again \"\n\"with a different file\\n\"\n\"\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do\"\n\" unless Telegram changes it\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"\"\n\"The file is too large for me to send to you\\n\"\n\"\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do\"\n\" unless Telegram changes it\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"\"\n\"Send me the font that you'll like to use for the PDF file or press {skip}\"\n\" to use the default font\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/en_US/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: en_US\\n\"\n\"Language-Team: English, United States\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: en-US\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Cancel\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Done\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Back\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Welcome to PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Key features:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Create PDF files from text messages\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Extract images and text from PDF files\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Convert PDF files into images\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Convert webpages and images into PDF files\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Beautify handwritten notes images into PDF files\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- And more...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Type {command} to see how to use PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Set Language 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Join Channel\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Support PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"You can perform most of the tasks by sending me one of the followings:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF files\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Images\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Webpage links\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"The rest of the tasks can be performed by using the following commands:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - compare PDF files\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - merge PDF files\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - convert and combine multiple images into PDF files\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - create PDF files from text messages\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - add watermark to PDF files\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Send me one of the PDF files that you'll like to compare\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Note that I can only look for text differences\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Send me the other PDF file that you'll like to compare\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Comparing your PDF files\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"There are no text differences between your PDF files\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Something went wrong, please try again\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"The feedback is not in English, try again\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Your file is too big for me to download and process\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Select the task that you'll like to perform\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Beautify\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"To PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Send me the images that you'll like to beautify or convert into a PDF file\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Note that the images will be beautified and converted in the order that you send me\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Select the task from below if you've sent me all the images, or keep sending me the images\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Select your language\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Your language has been set to {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Send me the PDF files that you'll like to merge\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Note that the files will be merged in the order that you send me\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} has been removed for merging\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"You haven't sent me any PDF files\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"You've only sent me one PDF file\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Merging your PDF files\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Say Thanks\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Coffee\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Beer\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Meal\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Select how you want to support PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Say thanks to PDF Bot and help keep it running\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Thank you for your support!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Help translate PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Your PDF file is not encrypted\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Your PDF file is encrypted with a method that I can't decrypt\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Your PDF file already has a text layer\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Compress\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"File size reduced by {percent}, from {old_size} to {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Crop\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Decrypt\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Send me the password to decrypt your PDF file\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Encrypt\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Send me the password to encrypt your PDF file\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Preview\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Rename\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Send me the file name that you'll like to rename your PDF file into\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Rotate\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Scale\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Split\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Send me the range of pages that you'll like to keep\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"General usage\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      all pages\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      page 8 only\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    first three pages\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     from page 8 onward\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     last page only\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    all pages except the last page\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     second last page only\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    last two pages\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  third and second last pages\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Advanced usage\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    pages {pages} and to the end\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} pages {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   all pages in reversed order\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} pages {pages} except {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  pages {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Your file is not a PDF file, please try again\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Action canceled\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Here is your result file\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Skip\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Send me the text that you'll like to write into your PDF file\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"See here for the list of supported fonts: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Unknown font, please try again\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Creating your PDF file\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Send me the PDF file that you'll like to add a watermark\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Send me the watermark PDF file\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Adding the watermark onto your PDF file\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/es_ES/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: es\\n\"\n\"Language-Team: Spanish\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: es-ES\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Cancelar\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Hecho\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Volver\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Algo salió mal, comience de nuevo con su archivo o comando\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Error al completar el proceso\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"¡Bienvenido a PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Características clave:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Comprimir, combinar, previsualizar, renombrar, dividir y agregar marcas de agua a archivos PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Crear archivos PDF a partir de mensajes de texto\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Extraer imágenes y texto de archivos PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Convertir archivos PDF en imágenes\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Convertir páginas web e imágenes en archivos PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Embellecer imágenes de notas manuscritas en archivos PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Y más...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Escriba {command} para ver cómo usar PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Definir Idioma 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Unirse al canal\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Apoya a PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Puede realizar la mayoría de las tareas enviándome una de las siguientes opciones:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- Archivos PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Imágenes\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Enlaces a páginas web\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"El resto de las tareas se pueden realizar mediante los siguientes comandos:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - comparar archivos PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - combinar archivos PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - convertir y combinar múltiples imágenes en archivos PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - crear archivos PDF a partir de mensajes de texto\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - añadir marca de agua a los archivos PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Envíame uno de los archivos PDF que te gustará comparar\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Tenga en cuenta que solo puedo buscar diferencias de texto\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Envíame el otro archivo PDF que te gustaría comparar\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Comparando tus archivos PDF\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"No hay diferencias de texto entre los archivos PDF\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Algo salió mal, por favor inténtalo de nuevo\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"El botón ha caducado, comience de nuevo con su archivo o comando\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"La imagen resultante no es válida, inténtelo de nuevo\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Envíame tus comentarios en inglés\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"El comentario no está en inglés, inténtalo de nuevo\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Gracias por sus comentarios, se los he enviado a mi desarrollador\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Su archivo es demasiado grande para que yo lo descargue y procese\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Tenga en cuenta que esta es una limitación de Telegram Bot y no hay nada que pueda hacer a menos que Telegram cambie este límite\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Procesamiento de su archivo\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Elegir la tarea a realizar\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Mejorar\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"A PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Eliminar el último archivo\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Envíame las imágenes que te gustaría embellecer o convertir en un archivo PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Ten en cuenta que las imágenes serán embellecidas y convertidas en el orden que me envíes\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Me has enviado estas imágenes hasta ahora:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Seleccione la tarea de abajo si me ha enviado todas las imágenes, o siga enviándome las imágenes\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Ya has eliminado todas las imágenes que me has enviado\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} se ha eliminado\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"No me has enviado ninguna imagen\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Solo me has enviado una imagen\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Embellecer y convertir sus imágenes en un archivo PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Convertir las imágenes en un archivo PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Selecciona tu idioma\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Su idioma se ha establecido en {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Envíame los archivos PDF que quieras fusionar\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Tenga en cuenta que los archivos se combinarán en el orden en que me envíe\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Me has enviado estos archivos PDF hasta ahora:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Pulsa {done} si me has enviado todos los archivos PDF que te gustaría fusionar o sigue enviándome los archivos PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Ya has eliminado todos los archivos PDF que me has enviado\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} se ha eliminado para fusionar\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"No me has enviado ningún archivo PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Sólo me has enviado un archivo PDF\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Combinando tus archivos PDF\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Decí gracias\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Café\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Cerveza\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Comida\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Selecciona cómo quieres apoyar a PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Agradece a PDF Bot y ayuda a mantenerlo funcionando\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Algo salió mal, inténtalo de nuevo\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"¡Gracias por tu ayuda!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Ayuda a traducir la aplicación\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Su archivo PDF está cifrado, desencriptarlo primero y luego inténtelo de nuevo\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Tu archivo PDF no está cifrado\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Contraseña incorrecta, inténtelo de nuevo\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Su archivo PDF está encriptado con un método que no puedo descifrar\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"No se han encontrado imágenes en el archivo PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"No se ha encontrado texto en el archivo PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"No pude fusionar sus archivos PDF porque este archivo no es válido: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Tu archivo PDF ya tiene una capa de texto\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Su archivo PDF no es válido\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Comprimir\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Tamaño del archivo reducido un {percent}, ha pasado de {old_size} a {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Por porcentaje\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Al tamaño del margen\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Enviarme un número entre 0 y 100\\n\\n\"\n\"Este es el porcentaje de espacio de margen para retener entre el contenido del archivo PDF y la página.\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Envíame un número que te gustaría ajustar el tamaño del margen\\n\\n\"\n\"Los números positivos disminuirán el tamaño del margen y los números negativos lo aumentarán\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Recortar\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Seleccione el tipo de recorte que desea realizar\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Los valores de recorte no son válidos, inténtelo de nuevo\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Descifrar\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Envíame la contraseña para descifrar tu archivo PDF\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Cifrar\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Envíame la contraseña para cifrar tu archivo PDF\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Extraer imágenes\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Extraer texto\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Escala de grises\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Ir a imágenes\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Vista previa\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Renombrar\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Los nombres de archivo no pueden contener ninguno de los siguientes caracteres, inténtelo de nuevo:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Envíame el nuevo nombre para renombrar tu archivo PDF\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Rotar\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Selecciona los grados que te gustaría rotar tu archivo PDF en sentido horario\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Por factor\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"A dimensión\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Envíenme los factores de escala para los ejes horizontal y vertical\\n\\n\"\n\"Ejemplo: 2 0.5 - esto duplicará el eje horizontal y reducirá a la mitad el eje vertical\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Envíame el ancho y el alto\\n\\n\"\n\"Ejemplo: 150 200 - esto establecerá el ancho en 150 y el alto en 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Ampliar\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Seleccione el tipo de escala que desea realizar\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Los valores de escala no son válidos, inténtelo de nuevo\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Dividir\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"El rango dividido no es válido, inténtelo de nuevo\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Envíame el rango de páginas que te gustaría mantener\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Uso general\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      todas las páginas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      página 8 solamente\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    tres primeras páginas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     a partir de la página 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     última página\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    todas las páginas excepto la última página\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     penúltima página\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    dos últimas páginas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  tercera y penúltima página\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Uso avanzado\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    páginas {pages} y hasta el final\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} páginas {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   todas las páginas en orden inverso\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} páginas {pages} excepto {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  páginas {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Su archivo es demasiado grande para que lo descargue y procese, inténtelo de nuevo con un archivo diferente\\n\\n\"\n\"Tenga en cuenta que Telegram aplica este límite y no hay nada que pueda hacer a menos que Telegram lo cambie\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"El archivo es demasiado grande para que te lo envíe\\n\\n\"\n\"Tenga en cuenta que este límite es aplicado por Telegram y no hay nada que pueda hacer a menos que Telegram lo cambie\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Su archivo no es una imagen, inténtelo de nuevo\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"No se ha encontrado ninguna imagen en el mensaje\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Su archivo no es un archivo PDF, inténtelo de nuevo\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Acción cancelada\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Este es tu archivo resultado\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Saltarse\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Envía el texto que quieres mostrar en tu archivo PDF\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Envíeme la fuente que desea utilizar para el archivo PDF o pulse {skip} para utilizar la fuente predeterminada\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Ver aquí la lista de fuentes soportadas: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Fuente desconocida, inténtelo de nuevo\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Creando tu archivo PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Envíame el archivo PDF al que quieres añadir una marca de agua\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Enviarme el archivo PDF de marca de agua\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Añadiendo la marca de agua a tu archivo PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Ya me has enviado esta página web y todavía la estoy convirtiendo\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Convertir tu página web en un archivo PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"No se puede acceder a su página web\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Error al convertir la página web\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/fa_IR/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: fa\\n\"\n\"Language-Team: Persian\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: fa\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"لغو\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"انجام\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"بازگشت\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"يه مشکلي پيش اومده، با پرونده يا دستورت شروع کن\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"فارایند تکمیل نشد\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"به ربات پی‌دی‌اف خوش آمدید!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"ویژگی های کلیدی:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- فشرده سازی، ادغام، پیش نمایش، تغییر نام، تقسیم و اضافه کردن واترمارک به فایل های PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- ایجاد فایل های PDF از پیام های متنی\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- استخراج تصاویر و متن از فایل های PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- تبدیل فایل های PDF به تصاویر\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- تبدیل صفحات وب و تصاویر به فایل های PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- زیبا سازی عکس یادداشت‌های دست نویس به فایل های پی دی اف\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"-و موارد دیگر.....\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"کلمه {command}  را برای دیدن نحوه استفاده از ربات پی دی اف ارسال کنید\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"تنظیم زبان 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"پیوستن به کانال\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"حمایت از ربات پی دی اف\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"شما می توانید بیشتر کارها را با ارسال یکی از موارد زیر برای من انجام دهید:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- فایل های پی دی اف\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"-تصاویر\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- پیوندهای صفحه وب\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"بقیه کارها را می توان با استفاده از دستورات زیر انجام داد:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} -- مقایسه فایل های پی دی اف\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} -- ادغام فایل های پی دی اف\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} -- تبدیل و ترکیب تصاویر متعدد به فایل های پی دی اف\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} -- ایجاد فایل های پی دی اف از پیام های متنی\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} -- اضافه کردن watermark به فایل های پی دی اف\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"یکی از فایلهای پی دی افی را که می‌خواهید مقایسه کنید را ارسال کنید\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"توجه داشته باشید که من فقط می توانم به دنبال تفاوتهای متن باشم\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"فایل پی دی اف دیگر را برای مقایسه با فایل قبلی ارسال کنید\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"مقایسه فایل های PDF شما\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"هیچ تفاوت متنی بین فایل های پی دی اف شما وجود ندارد\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"يه مشکلي پيش اومده، لطفا ً دوباره سعي کن\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"دکمه منقضی شده است، با فایل یا فرمان خود شروع کنید\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"تصویر حاصل نامعتبر است، دوباره امتحان کنید\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"بازخورد خود را به زبان انگلیسی ارسال کنید\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"بازخورد به زبان انگلیسی نیست، دوباره سعی کنید\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"با تشکر از بازخورد شما.\\n\"\n\"بازخورد شما به توسعه دهنده ارسال خواهد شد.\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"فایل شما برای دانلود و پردازش برای من خیلی بزرگ است\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"توجه داشته باشید که این محدودیت تلگرام ربات است و هیچ کاری نمی توانم انجام دهم مگر اینکه تلگرام این حد را تغییر دهد\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"پردازش پرونده شما\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"وظیفه ای را که می خواهید انجام دهد انتخاب کنید\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"زیباسازی\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"به پی دی اف\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"حذف اخرین فایل\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"تصاویری را که می خواهید زیبا سازی کنید یا به یک فایل PDF تبدیل کنید برایم بفرستید\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"توجه داشته باشید که تصاویر زیبا و تبدیل خواهد شد به ترتیبی که شما برای من ارسال\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"شما این تصاویر را تا کنون برایم ارسال کرده ای:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"اگر تمام تصاویر را برایم فرستاده بودید، وظیفه را از زیر انتخاب کنید، یا تصاویر را برایم ارسال کنید\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"تو قبلا تمام تصاويري که برام فرستادي رو حذف کردي\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} حذف شده است\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"تو هيچ عکسي برام نفرستي\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"تو فقط يه تصوير برام فرستادي\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"زیبا سازی و تبدیل تصاویر خود را به یک فایل پی دی اف\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"تبدیل تصاویر خود را به یک فایل پی دی اف\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"زبان خود را انتخاب کنید\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"زبان شما تنظیم شده {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"فایل های PDF که دوست دارید با هم ادغام شوند را برایم بفرستید\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"توجه داشته باشید که فایل ها به ترتیبی که برای من ارسال می کنید ادغام خواهند شد\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"شما این فایل های پی دی اف را تا کنون برایم ارسال کرده ای:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"مطبوعات {done} اگر شما برای من ارسال تمام فایل های پی دی اف است که شما می خواهم به ادغام و یا نگه داشتن ارسال فایل های پی دی اف برای من\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"شما در حال حاضر حذف تمام فایل های پی دی اف شما برای من فرستاده\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} برای ادغام حذف شده است\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"شما هیچ فایل پی دی اف برای من ارسال نکرده است\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"تو فقط يه فايل PDF برام فرستادي\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"ادغام فایل های پی دی اف خود را\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"تشکر کنید\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"قهوه\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"آبجو\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"وعده غذایی\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"انتخاب کنید که چگونه می خواهید برای حمایت از پی دی اف ربات\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"می گویند با تشکر از ربات پی دی اف و کمک به نگه داشتن آن در حال اجرا\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"مشکلی پیش آمد، لطفا دوباره امتحان کنید.\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"با تشکر از شما برای حمایت شما!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"کمک به ترجمه پی دی اف ربات\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"فایل PDF شما رمزگذاری شده است ، رمزگشایی آن را برای اولین بار و سپس دوباره سعی کنید\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"فایل PDF شما رمزگذاری نشده است\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"رمز عبور نادرست، لطفا دوباره امتحان کنید\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"فایل PDF شما با روشی رمزگذاری شده است که من نمی توانم رمزگشایی کنم\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"هیچ عکسی در فایل PDF شما یافت نمی شود\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"هیچ متنی در فایل پی دی اف شما یافت نمی شود\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"من نمی توانم فایل های PDF شما را ادغام کنم زیرا این پرونده نامعتبر است: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"فایل PDF شما در حال حاضر دارای یک لایه متن\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"پرونده PDF شما نامعتبر است\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"فشرده سازی\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"حجم فایل با کاهش {percent}، از {old_size} به {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"بر اساس درصد\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"به اندازه حاشیه\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"برای من یک شماره بین 0 و 100\\n\\n\"\n\"این درصد از فضای حاشیه برای حفظ بین محتوا در فایل پی دی اف خود و صفحه است\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"برایم شماره ای بفرستید که می خواهید اندازه حاشیه را تنظیم کنید\\n\\n\"\n\"اعداد مثبت اندازه حاشیه را کاهش می دهند و اعداد منفی آن را افزایش می دهند\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"محصول\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"نوع محصولی را که می خواهید انجام دهد انتخاب کنید\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"ارزش های محصول بی اعتبار هستند، دوباره سعی کنید\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"رمزگشایی\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"رمز عبور را برای من بفرستید تا فایل PDF خود را رمزگشایی کنم\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"رمزگذاری\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"رمز عبور را برای من بفرستید تا فایل PDF خود را رمزگذاری کنم\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"استخراج تصاویر\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"استخراج متن\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"خاکستری\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"به تصاویر\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"پیشنمایش\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"نام\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"نام پرونده نمی تواند حاوی هیچ یک از نویسه های زیر باشد، لطفا دوباره امتحان کنید:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"نام فایلی را که می خواهید فایل PDF خود را به آن تغییر نام دهید برایم بفرستید\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"چرخش\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"درجه هایی را انتخاب کنید که می خواهید فایل PDF خود را در جهت عقربه های ساعت بچرخانید\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"بر اساس عامل\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"به بعد\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"عوامل پوسته پوسته شدن برای محورهای افقی و عمودی را برایم بفرستید\\n\\n\"\n\"مثال: 2 0.5 - این کار محور افقی را دو برابر می کند و محور عمودی را نصف می کند\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"عرض و ارتفاع را برایم بفرستید\\n\\n\"\n\"مثال: 150 200 - این عرض را به 150 و ارتفاع به 200 تنظیم خواهد کرد\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"مقیاس\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"نوع مقیاسی را که می خواهید انجام دهد انتخاب کنید\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"مقادیر مقیاس نامعتبر هستند، دوباره امتحان کنید\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"تقسیم\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"محدوده تقسیم نامعتبر است، لطفا دوباره سعی کنید\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"دامنه صفحاتی را که دوست دارید نگه دارید برایم بفرستید\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"استفاده عمومی\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      تمام صفحات\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      صفحه 8 تنها\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    صفحه اول\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     از صفحه 8 به بعد\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     صفحه آخر فقط\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    تمام صفحات به جز صفحه آخر\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     صفحه آخر فقط\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    دو صفحه آخر\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  و دوم آخرین صفحات\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"استفاده پیشرفته\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    صفحات {pages} و تا آخر\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} صفحات {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   صفحات را به ترتیب معکوس\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} صفحه {pages} جز {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  صفحات {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"فایل شما برای دانلود و پردازش من بسیار بزرگ است، لطفا دوباره با یک فایل دیگر امتحان کنید\\n\\n\"\n\"توجه داشته باشید که این محدودیت توسط تلگرام اعمال می شود و هیچ کاری نمی توانم انجام دهم مگر اینکه تلگرام ان را تغییر دهد.\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"فایل برای من خیلی بزرگ است که برای شما ارسال کنم\\n\\n\"\n\"توجه داشته باشید که این حد توسط تلگرام اجرا می شود و کاری از دستم بر نمیاد مگر اینکه تلگرام آن را تغییر دهد\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"پرونده شما یک تصویر نیست، لطفا دوباره امتحان کنید\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"هیچ تصویری در پیام شما یافت نمی شود\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"پرونده شما یک فایل PDF نیست، لطفا دوباره امتحان کنید\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"اقدام لغو شد\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"در اینجا فایل نتیجه شما\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"پرش\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"متنی را که می خواهید در فایل PDF خود بنویسید برایم بفرستید\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"فونتی را که می خواهید برای فایل PDF استفاده کنید برایم بفرستید یا {skip} از فونت پیش فرض فشار دهید\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"برای لیست فونت های پشتیبانی شده اینجا را ببینید: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"فونت ناشناخته، لطفا دوباره امتحان کنید\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"ایجاد فایل پی دی اف شما\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"فایل پی دی اف را برایم بفرستید که می خواهید یک واترمارک اضافه کنید\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"فایل واترمارک پی دی اف را برایم بفرستید\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"اضافه کردن علامت آب بر روی فایل پی دی اف خود را\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"تو اين صفحه وب رو برام فرستادي و من هنوز دارم تبديلش ميکنم\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"تبدیل صفحه وب شما به یک فایل PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"قادر به رسیدن به صفحه وب شما نیست\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"موفق به تبدیل صفحه وب شما نشد\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/fi_FI/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: fi\\n\"\n\"Language-Team: Finnish\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: fi\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Peruuta\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Tehnyt\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Bck\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Jokin meni pieleen, aloita alusta tiedostollasi tai komennollasi\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Prosessin suorittaminen epäonnistui\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Tervetuloa PDF-bottiin!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Tärkeimmät ominaisuudet:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Pakkaa, yhdistä, esikatsele, nimeä uudelleen, jaa ja lisää vesileima PDF-tiedostoihin\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Luo PDF-tiedostoja tekstiviesteistä\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Pura kuvia ja tekstiä PDF-tiedostoista\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Muunna PDF-tiedostot kuviksi\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Muunna verkkosivut ja kuvat PDF-tiedostoiksi\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Kaunista käsinkirjoitetut muistiinpanokuvat PDF-tiedostoiksi\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Ja lisää...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Kirjoita {command} nähdäksesi kuinka PDF Botia käytetään\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Aseta Kieli 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Liity kanavaan\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Tuki PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Voit suorittaa suurimman osan tehtävistä lähettämällä minulle jommankin seuraavista:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF-tiedostot\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Kuvat\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Verkkosivun linkit\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Loput tehtävät voidaan suorittaa seuraavilla komennoilla:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - vertaa PDF-tiedostoja\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - PDF-tiedostojen yhdistäminen\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - muuntaa ja yhdistää useita kuvia PDF-tiedostoiksi\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - pdf-tiedostojen luominen tekstiviesteistä\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - lisää vesileima PDF-tiedostoihin\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Lähetä minulle yksi PDF-tiedostoista, joita haluat verrata\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Huomaa, että voin etsiä vain tekstieroja\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Lähetä minulle toinen PDF-tiedosto, jota haluat verrata\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"PDF-tiedostojen vertailu\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"PDF-tiedostojen välillä ei ole tekstieroja\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Jokin meni vikaan.\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Painike on vanhentunut, aloita alusta tiedostollasi tai komennollasi\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Tuloksena oleva kuva on virheellinen, yritä uudelleen\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Lähetä minulle palautetta englanniksi\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Palaute ei ole englanniksi, yritä uudelleen\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Kiitos palautteestasi, olen välittänyt sen kehittäjälleni\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Tiedostosi on liian suuri ladattavaksi ja käsiteltäväksi\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Huomaa, että tämä on Telegram Bot -rajoitus, enkä voi tehdä mitään, ellei Telegram muuta tätä rajaa\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Tiedoston käsittely\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Valitse tehtävä, jonka haluat suorittaa\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Kaunistaa\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"PDF-tiedostoon\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Poista viimeinen tiedosto\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Lähetä minulle kuvat, jotka haluat kaunistaa tai muuntaa PDF-tiedostoksi\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Huomaa, että kuvat kaunistavat ja muunnetaan siinä järjestyksessä, jonka lähetät minulle\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Olet lähettänyt minulle nämä kuvat tähän mennessä:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Valitse tehtävä alapuolelta, jos olet lähettänyt minulle kaikki kuvat, tai jatka kuvien lähettämistä minulle\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Olet jo poistanut kaikki minulle lähettämäsi kuvat\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} on poistettu\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Et ole lähettänyt minulle kuvia\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Olet lähettänyt minulle vain yhden kuvan\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Kuvien kaunistaminen ja muuntaminen PDF-tiedostoksi\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Kuvien muuntaminen PDF-tiedostoksi\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Valitse kieli\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Kielesi on määritetty {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Lähetä pdf-tiedostot, jotka haluat yhdistää\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Huomaa, että tiedostot yhdistetään lähettämissäsi järjestyksessä\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Olet lähettänyt minulle nämä PDF-tiedostot tähän mennessä:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Paina {done} jos olet lähettänyt minulle kaikki PDF-tiedostot, jotka haluat yhdistää, tai jatka PDF-tiedostojen lähettämistä\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Olet jo poistanut kaikki lähettämäsi PDF-tiedostot\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} on poistettu yhdistämistä\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Et ole lähettänyt minulle PDF-tiedostoja\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Lähetit minulle vain yhden PDF-tiedoston.\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"PDF-tiedostojen yhdistäminen\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Sano kiitos\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Kahvi\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Olut\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Ateria\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Valitse, miten haluat tukea PDF Botia\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Kiitä PDF Botia ja auta pitämään se käynnissä\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Jokin meni pieleen, yritä uudelleen\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Kiitos tuestanne!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Auta kääntämään PDF-botti\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"PDF-tiedostosi on salattu, pura se ensin ja yritä sitten uudelleen\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"PDF-tiedostoa ei ole salattu\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Väärä salasana, yritä uudelleen\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"PDF-tiedostosi salataan menetelmällä, jonka salausta en voi purkaa\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"PDF-tiedostosta ei löytynyt kuvia\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"PDF-tiedostosta ei löytynyt tekstiä\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"PDF-tiedostojen yhdistäminen ei onnistunut, koska tämä tiedosto on virheellinen: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"PDF-tiedostossa on jo tekstikerros\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"PDF-tiedosto ei kelpaa\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Pakata\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Tiedoston kokoa pienennetty {percent}, {old_size} {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Prosentteina\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Marginaalin kokoon\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Lähetä minulle numero väliltä 0-100\\n\\n\"\n\"Tämä on PDF-tiedoston sisällön ja sivun välillä säilytettävän marginaalitilan prosenttiosuus.\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Lähetä minulle numero, jonka marginaalin kokoa haluat muuttaa\\n\\n\"\n\"Positiiviset luvut pienentävät marginaalin kokoa ja negatiiviset luvut lisäävät sitä\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Rajata\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Valitse viljelytyyppi, jonka haluat suorittaa\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Rajausarvot ovat virheellisiä, yritä uudelleen\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Purkaa\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Lähetä salasana PDF-tiedoston salauksen purkamiseen\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Salata\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Lähetä minulle salasana PDF-tiedoston salaamista vastaan\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Kuvien purkaminen\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Tekstin purkaminen\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Harmaasävy\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Kuviin\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Esikatselu\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Nimeä\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Tiedostonimet eivät saa sisältää mitään seuraavista merkeistä, yritä uudelleen:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Lähetä tiedostonimi, jonka haluat nimetä PDF-tiedostoksi\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Kiertää\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Valitse asteet, joita haluat kiertää PDF-tiedostoa myötäpäivään\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Tekijän mukaan\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Dimensioon\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Lähetä minulle vaaka- ja pystyakselien skaalauskertoimet\\n\\n\"\n\"Esimerkki: 2 0,5 - tämä kaksinkertaistaa vaaka-akselin ja puolittaa pystyakselin\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Lähetä minulle leveys ja korkeus\\n\\n\"\n\"Esimerkki: 150 200 - tämä asettaa leveydeksi 150 ja korkeudeksi 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Mittakaavassa\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Valitse skaalaustyyppi, jonka haluat suorittaa\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Asteikon arvot ovat virheellisiä, yritä uudelleen\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Split\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Jaettu alue on virheellinen, yritä uudelleen\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Lähetä minulle sivualue, jonka haluat säilyttää\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Yleinen käyttö\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      kaikki sivut\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      vain sivu 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    kolme ensimmäistä sivua\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     sivulta 8 eteenpäin\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     viimeinen sivu\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    sivut viimeistä sivua lukuun ottamatta\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     toiseksi viimeinen sivu\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    kaksi viimeistä sivua\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  ja toiseksi viimeiset sivut\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Käytön lisäasetukset\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    sivut {pages} loppuun asti\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} sivut {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   kaikki sivut käänteisessä järjestyksessä\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} sivut {pages} paitsi {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  sivut {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Tiedostosi on liian suuri ladattavaksi ja käsiteltäväksi, yritä uudelleen toisella tiedostolla\\n\\n\"\n\"Huomaa, että Telegram valvoo tätä rajaa, enkä voi tehdä mitään, ellei Telegram muuta sitä\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Tiedosto on liian suuri, jotta voisin lähettää sen sinulle\\n\\n\"\n\"Huomaa, että Telegram valvoo tätä rajoitusta, enkä voi tehdä mitään, ellei Telegram muuta sitä\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Tiedostosi ei ole kuva, yritä uudelleen\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Viestistä ei löytynyt kuvaa\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Tiedostosi ei ole PDF-tiedosto, yritä uudelleen\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Toiminto peruutettu\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Tässä on tulostiedostosi\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Hyppiä\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Lähetä teksti, jonka haluat kirjoittaa PDF-tiedostoon\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Lähetä pdf-tiedostossa käytettävä fontti tai käytä oletusfonttia painamalla {skip} -näppäintä\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Katso täältä luettelo tuetuista fonteista: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Tuntematon fontti, yritä uudelleen\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"PDF-tiedoston luominen\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Lähetä minulle PDF-tiedosto, jonka haluat lisätä vesileiman\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Lähetä minulle vesileiman PDF-tiedosto\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Vesileiman lisääminen PDF-tiedostoon\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Olet jo lähettänyt minulle tämän verkkosivun ja muutan sitä edelleen\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Verkkosivun muuntaminen PDF-tiedostoksi\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Verkkosivulle ei pääse\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Verkkosivun muuntaminen epäonnistui\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/fr_FR/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: fr\\n\"\n\"Language-Team: French\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n > 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: fr\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Annuler\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Terminé\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Retour\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Quelque chose s’est mal passé, recommencez avec votre fichier ou votre commande\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Echec de la fin du processus\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Bienvenue sur PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Principales caractéristiques :\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Compresser, fusionner, prévisualiser, renommer, diviser et ajouter un filigrane aux fichiers PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Créer des fichiers PDF à partir de messages texte\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Extraire des images et du texte de fichiers PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Convertir des fichiers PDF en images\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Convertir des pages Web et des images en fichiers PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Embellir les images de notes manuscrites dans des fichiers PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Et plus encore...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Tapez {command} pour voir comment utiliser PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Définir la langue 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Rejoindre la chaîne\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Support PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Vous pouvez effectuer la plupart des tâches en m’envoyant l’un des éléments suivants :\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- Fichiers PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Images\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Liens vers les pages Web\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Le reste des tâches peut être effectué à l’aide des commandes suivantes :\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - comparer les fichiers PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - fusionner des fichiers PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - convertir et combiner plusieurs images en fichiers PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - créer des fichiers PDF à partir de messages texte\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - ajouter un filigrane aux fichiers PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Envoyez-moi l’un des fichiers PDF que vous voudrez comparer\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Notez que je ne peux rechercher que les différences de texte\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Envoyez-moi l'autre fichier PDF que vous aimeriez comparer\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Comparaison de vos fichiers PDF\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Il n’y a pas de différences de texte entre vos fichiers PDF\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Quelque chose s’est mal passé, s’il vous plaît essayer à nouveau\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Le bouton a expiré, recommencez avec votre fichier ou votre commande\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"L’image obtenue n’est pas valide, réessayez\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Envoyez-moi vos commentaires en anglais\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Le commentaire n'est pas en anglais, réessayez\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Merci pour vos commentaires, je les ai transmis à mon développeur\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Votre fichier est trop volumineux pour que je le télécharge et le traite\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Notez qu’il s’agit d’une limitation de Telegram Bot et qu’il n’y a rien que je puisse faire à moins que Telegram ne modifie cette limite\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Traitement de votre dossier\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Sélectionner les actions que vous souhaitez effectuer\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Embellir\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"En PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Supprimer le dernier fichier\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Envoyez-moi les images que vous aimerez embellir ou convertir en fichier PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Notez que les images seront embellies et converties dans l’ordre dans lequel vous m’envoyez\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Vous m’avez envoyé ces images jusqu’à présent:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Sélectionnez la tâche ci-dessous si vous m’avez envoyé toutes les images, ou continuez à m’envoyer les images\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Vous avez déjà supprimé toutes les images que vous m’avez envoyées\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} a été supprimé\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Vous ne m’avez pas envoyé d’images\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Vous ne m’avez envoyé qu’une seule image\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Embellir et convertir vos images en fichier PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Conversion de vos images en fichier PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Sélectionnez votre langue\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Votre langue a été définie sur {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Envoyez-moi les fichiers PDF que vous souhaitez fusionner\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Notez que les fichiers seront fusionnés dans l’ordre que vous m’envoyez\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Vous m’avez envoyé ces fichiers PDF jusqu’à présent:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Appuyez sur {done} si vous m’avez envoyé tous les fichiers PDF que vous souhaitez fusionner ou continuez à m’envoyer les fichiers PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Vous avez déjà supprimé tous les fichiers PDF que vous m’avez envoyés\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} a été supprimé pour fusion\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Vous n'avez pas envoyé de fichier PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Vous ne m’avez envoyé qu’un seul fichier PDF\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Fusion de vos fichiers PDF\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Dire merci\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Café\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Bière\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Repas\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Sélectionnez comment vous voulez aider PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Dites merci à PDF Bot et aidez-le à le faire fonctionner\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Quelque chose s’est mal passé, essayez à nouveau\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Merci de votre soutien!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Aider à traduire PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Votre fichier PDF est crypté, décryptez-le d’abord, puis réessayez\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Votre PDF n'est pas crypté\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Mot de passe incorrect, veuillez réessayer\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Votre fichier PDF est crypté avec une méthode que je ne peux pas déchiffrer\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Aucune image trouvée dans votre fichier PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Aucun texte trouvé dans votre fichier PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Je n’ai pas pu fusionner vos fichiers PDF car ce fichier n’est pas valide : %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Votre fichier PDF a déjà une couche de texte\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Votre fichier PDF n’est pas valide\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Compresser\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Taille du fichier réduite de {percent}, de {old_size} à {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"En pourcentage\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Vers la taille de la marge\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Envoyez-moi un nombre entre 0 et 100\\n\\n\"\n\"Il s’agit du pourcentage d’espace de marge à conserver entre le contenu de votre fichier PDF et la page\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Envoyez-moi un numéro dont vous souhaitez ajuster la taille de la marge\\n\\n\"\n\"Les nombres positifs diminueront la taille de la marge et les nombres négatifs l’augmenteront\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Rogner\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Sélectionnez le type de recadrage que vous souhaitez effectuer\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Les valeurs de recadrage ne sont pas valides, réessayez\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Décrypter\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Envoyez-moi le mot de passe pour décrypter votre fichier PDF\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Crypter\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Envoyez-moi le mot de passe pour crypter votre fichier PDF\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Extraire des images\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Extraire du texte\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Niveaux de gris\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Vers les images\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Prévisualiser\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Renommer\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Les noms de fichiers ne peuvent contenir aucun des caractères suivants, veuillez réessayer :\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Envoyez-moi le nom du fichier que vous aimeriez renommer en PDF\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Rotation\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Sélectionnez les degrés que vous voulez pour faire pivoter votre fichier PDF dans le sens des aiguilles d'une montre\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Par facteur\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Pour dimensionner\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Envoyez-moi les facteurs d’échelle pour les axes horizontal et vertical\\n\\n\"\n\"Exemple : 2 0,5 - cela doublera l’axe horizontal et réduira de moitié l’axe vertical\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Envoyez-moi la largeur et la hauteur\\n\\n\"\n\"Exemple: 150 200 - cela définira la largeur à 150 et la hauteur à 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Échelle\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Sélectionnez le type de mise à l’échelle que vous souhaitez effectuer\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Les valeurs d’échelle ne sont pas valides, réessayez\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Diviser\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"La plage fractionnée n’est pas valide, veuillez réessayer\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Envoyez-moi la gamme de pages que vous aimerez garder\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Utilisation générale\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      toutes les pages\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      page 8 seulement\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    trois premières pages\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     à partir de la page 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     dernière page seulement\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    toutes les pages à l’exception de la dernière page\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     avant-dernière page seulement\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    deux dernières pages\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  troisième et avant-dernière pages\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Utilisation avancée\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    pages {pages} et jusqu’à la fin\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{pages}pages {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   toutes les pages dans l’ordre inverse\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} pages {pages} sauf {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{pages}pages {range}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Votre fichier est trop volumineux pour que je puisse le télécharger et le traiter, veuillez réessayer avec un autre fichier\\n\\n\"\n\"Notez que cette limite est appliquée par Telegram et qu’il n’y a rien que je puisse faire à moins que Telegram ne la modifie\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Le fichier est trop volumineux pour que je puisse vous l’envoyer\\n\\n\"\n\"Notez que cette limite est appliquée par Telegram et que je ne peux rien faire à moins que Telegram ne la modifie.\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Votre fichier n’est pas une image, veuillez réessayer\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Aucune image trouvée dans votre message\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Votre fichier n’est pas un fichier PDF, veuillez réessayer\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Action annulée\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Voici votre fichier final\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Sautiller\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Envoyez-moi le texte que vous aimeriez écrire dans votre fichier PDF\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Envoyez-moi la police que vous souhaitez utiliser pour le fichier PDF ou appuyez sur {skip} pour utiliser la police par défaut\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Voir ici pour la liste des polices prises en charge: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Police inconnue, veuillez réessayer\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Création de votre fichier PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Envoyez-moi le fichier PDF que vous aimeriez ajouter un filigrane\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Envoyez-moi le fichier PDF du filigrane\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Ajouter le filigrane à votre fichier PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Vous m’avez déjà envoyé cette page Web et je suis toujours en train de la convertir\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Conversion de votre page Web en fichier PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Impossible d’accéder à votre page Web\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Impossible de convertir votre page Web\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/he_IL/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: he\\n\"\n\"Language-Team: Hebrew\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: he\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"לבטל\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"סיום\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"חזרה\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"משהו השתבש, התחל מחדש עם הקובץ או הפקודה שלך\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"לא הצליח להשלים את התהליך\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"ברוך בואך לבוט PDF!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"תכונות מפתח:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- דחיסה, מיזוג, תצוגה מקדימה, שינוי שם, פיצול והוספה של סימן מים לקובצי PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- יצירת קובצי PDF מהודעות טקסט\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- חילוץ תמונות וטקסט מקובצי PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- המרת קובצי PDF לתמונות\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- המרת דפי אינטרנט ותמונות לקובצי PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- ייפוי תמונות של הערות בכתב יד לקובצי PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- ועוד…\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"הקלדת {command} תציג כיצד להשתמש בבוט PDF\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"הגדרת 🌎 שפה\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"הצטרפות לערוץ\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"תמיכה בבוט PDF\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"באפשרותך לבצע את רוב המשימות על-ידי שליחת אחת מהמשימות הבאות:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- קובצי PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- תמונות\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- קישורי דף אינטרנט\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"ניתן לבצע את שאר המשימות באמצעות הפקודות הבאות:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - השוואת קובצי PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - מיזוג קובצי PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - המרה ושילוב של תמונות מרובות לקובצי PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - יצירת קובצי PDF מהודעות טקסט\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - הוספת סימן מים לקובצי PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"שלח לי את אחד מקבצי הPDF שתרצה להשוות\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"שים לב שאני יכול לחפש הבדלי טקסט בלבד\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"שלח לי את קובץ ה- PDF השני שאותו תרצה להשוות\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"השוואה בין קבצי PDF שלך\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"אין הבדלי מלל בין קבצי PDF\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"משהו השתבש, אנא נסה שוב\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"פג תוקפו של הלחצן, התחל מחדש עם הקובץ או הפקודה שלך\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"התמונה המתקבלת אינה חוקית, נסה שוב\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"שלח לי את המשוב שלך באנגלית\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"המשוב אינו באנגלית, נסה שוב\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"תודה על המשוב שלך, העברתי אותו למפתח שלי\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"הקובץ שלך גדול מדי מכדי שאני אוריד ואעבד אותו.\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"שים לב כי זוהי מגבלה של טלגרם ואין שום דבר שאני יכול לעשות אלא אם כן טלגרם תשנה את המגבלה הזאת\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"עיבוד הקובץ שלך\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"בחר את הפעולות שתרצה לבצע\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"ייפוי\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"ל־PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"הסרת הקובץ האחרון\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"שלח לי את התמונות שתרצה לייפות או להמיר לקובץ PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"שים לב שהתמונות ייפו ויומרו לפי הסדר שתשלח לי\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"שלחת לי את התמונות הבאות עד כה:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"בחר את המשימה מלמטה אם שלחת לי את כל התמונות, או המשך לשלוח לי את התמונות\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"כבר הסרת את כל התמונות ששלחת לי\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} הוסרה\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"לא שלחת לי תמונות\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"שלחת לי רק תמונה אחת\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"ייפוי והמרה של התמונות לקובץ PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"המרת התמונות לקובץ PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"בחר את השפה שלך\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"השפה שלך הוגדרה ל{language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"שלח לי את קבצי הPDF שברצונך למזג\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"שים לב שהקבצים ימוזגו בסדר שתשלח לי\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"שלחת לי את קובצי ה-PDF הבאים עד כה:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"לחץ {done} אם שלחת לי את כל קבצי הPDF שתרצה למזג או המשך לשלוח לי קבצי PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"כבר הסרת את כל קבצי ה-PDF ששלחת לי\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} הוסר לצורך מיזוג\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"לא שלחת לי שום קבצי PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"שלחת לי רק קובץ PDF אחד\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"מזג את קבצי ה-PDF שלך\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"תגיד תודה\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"קפה\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"בירה\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"ארוחה\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"בחר כיצד ברצונך לתמוך ב- PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"אנא הכר תודה ל- PDF Bot ותמוך בו בהמשך הפעילות\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"משהו השתבש, נסה שוב\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"תודה על תמיכתך!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"עזרה לתרגם Bot PDF\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"קובץ ה-PDF שלך מוצפן, פענח אותו תחילה ולאחר מכן נסה שוב\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"הקובץ PDF שלך לא מוצפן\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"סיסמה שגויה, נסה שוב\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"קובץ PDF שלך מוצפן בשיטה שאני לא יכול לפענח\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"לא נמצאו תמונות בקובץ PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"לא נמצא טקסט בקובץ PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"לא הצלחתי למזג קובצי PDF מכיוון שקובץ זה אינו חוקי: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"כבר קיים לקובץ ה PDF שלך שכבת טקסט\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"קובץ PDF אינו חוקי\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"לדחוס\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"גודל הקובץ הופחת ב- {percent}, מ- {old_size} {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"לפי אחוזים\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"לגודל השוליים\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"שלח לי מספר בין 0 ל-100\\n\\n\"\n\"זהו אחוז שטח השוליים שיש לשמור בין התוכן בקובץ PDF לעמוד\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"שלח לי מספר שתרצה להתאים את גודל השוליים\\n\\n\"\n\"מספרים חיוביים יקטינו את גודל השוליים ומספרים שליליים יגדילו אותו\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"חתוך\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"בחר את סוג החיתוך שתרצה לבצע\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"ערכי החיתוך אינם חוקיים, נסה שוב\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"לפענח\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"שלח לי את הסיסמה לפענוח הקובץ PDF שלך\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"הצפן\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"שלח לי את הסיסמה להצפנת הקובץ PDF שלך\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"חלץ תמונות\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"חילוץ טקסט\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"גווני אפור\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"לתמונות\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"תצוגה מקדימה\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"שנה שם\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"שמות קבצים אינם יכולים להכיל אף אחד מהתווים הבאים, נסה שוב:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"שלח לי את השם שתרצה לשנות לקובץ ה PDF שלך\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"סובב\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"בחר את המעלות שתרצה לשנות את הקובץ PDF שלך בסיבוב השעון\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"לפי גורם\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"לממד\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"שלח לי את גורמי שינוי קנה המידה עבור הציר האופקי והאנכי\\n\\n\"\n\"דוגמה: 2 0.5 - פעולה זו תכפיל את הציר האופקי ותצמצם בחצי את הציר האנכי\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"שלח לי את הרוחב והגובה\\n\\n\"\n\"דוגמה: 150 200 - פעולה זו תגדיר את הרוחב ל- 150 ואת הגובה ל- 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"גודל\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"בחר את סוג קנה המידה שברצונך לבצע\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"ערכי קנה המידה אינם חוקיים, נסה שוב\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"פיצול\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"טווח הפיצול אינו חוקי, אנא נסה שוב\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"שלח לי את טווח הדפים שאתה רוצה לשמור\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"שימוש כללי\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      כל העמודים\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      עמוד 8 בלבד\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    שלושת העמודים הראשונים\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     מעמוד 8 ואילך\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     העמוד האחרון בלבד\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    כל העמודים למעט העמוד האחרון\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     העמוד האחרון השני בלבד\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    שני העמודים האחרונים\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  העמודים האחרונים השלישי והשני\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"שימוש מתקדם\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    עמודים {pages} ועד הסוף\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{pages}עמודים {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   את כל העמודים בסדר הפוך\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{pages} עמודים {range} למעט {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{pages}עמודים {range}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"הקובץ שלך גדול מכדי שאוכל להוריד ולעבד, נסה שוב עם קובץ אחר\\n\\n\"\n\"שים לב שמגבלה זו נאכפת על ידי טלגרם ואין שום דבר שאני יכול לעשות אלא אם טלגרם תשנה אותה\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"הקובץ גדול מכדי שאוכל לשלוח אליך\\n\\n\"\n\"שים לב שמגבלה זו נאכפת על ידי טלגרם ואין שום דבר שאני יכול לעשות אלא אם כן טלגרם משנה אותה\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"הקובץ שלך אינו תמונה, נסה שוב\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"לא נמצאה תמונה בהודעה שלך\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"הקובץ שלך אינו קובץ PDF, נא נסה שוב\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"הפעולה בוטלה\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"כאן הקובץ הסופי שלך\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"דלג\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"שלח לי את הטקסט שתרצה להכניס לתוך קובץ ה PDF שלך\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"שלח לי את הגופן שבו תרצה להשתמש עבור קובץ PDF או הקש {skip} כדי להשתמש בגופן ברירת המחדל\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"ראה כאן לקבלת רשימת הגופנים הנתמכים: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"גופן לא ידוע, נא נסה שוב\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"קובץ ה־PDF שלך נוצר\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"שלח לי את ה PDF שתרצה להוסיף לו חותם מים\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"שלח לי את סימן המים של הקובץ PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"מוסיף את סימן המים לקובץ ה PDF שלך\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"כבר שלחת לי את דף האינטרנט הזה ואני עדיין ממיר אותו\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"המרת דף האינטרנט לקובץ PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"לא ניתן להגיע לדף האינטרנט שלך\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"המרת דף האינטרנט שלך נכשלה\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/hi_IN/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: hi\\n\"\n\"Language-Team: Hindi\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: hi\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"रद्द\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"पूर्ण\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"वापस\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"कुछ गलत हो गया, अपनी फ़ाइल या आदेश से शुरू करें\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"प्रक्रिया पूरी करने में विफल\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"पीडीएफ बॉट में आपका स्वागत है!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"मुख्य विशेषताएं:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- सेक, मर्ज, पूर्वावलोकन, नाम बदलना, विभाजित करना और पीडीएफ फाइलों में वॉटरमार्क जोड़ना\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- टेक्स्ट संदेशों से पीडीएफ फाइलें बनाएं\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- पीडीएफ फाइलों से छवियों और पाठ निकालें\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- पीडीएफ फाइलों को छवियों में परिवर्तित करना\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- वेबपेज और छवियों को पीडीएफ फाइलों में परिवर्तित करें\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- पीडीएफ फाइलों में हस्तलिखित नोट्स छवियों को सुशोभित करें\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- और अधिक ...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"पीडीएफ बॉट का उपयोग करने के तरीके देखने के लिए {command} टाइप करें\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"भाषा चुने 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"चैनल से जुड़े\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"पीडीएफ बॉट का सहयोग करे\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"आप मुझे निम्नलिखित में से एक भेजकर अधिकांश कार्य कर सकते हैं:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- पीडीएफ फाइलें\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- छवियाँ\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- वेबपेज लिंक\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"बाकी कार्य निम्नलिखित आदेशों का उपयोग करके किए जा सकते हैं:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - पीडीएफ फाइलों की तुलना करें\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - पीडीएफ फाइलों को मर्ज\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - कन्वर्ट और पीडीएफ फाइलों में कई छवियों को गठबंधन\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - टेक्स्ट संदेशों से पीडीएफ फ़ाइलें बनाएं\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - पीडीएफ फाइलों में वॉटरमार्क जोड़ें\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"मुझे उन पीडीएफ फाइलों में से एक भेजें जिसकी आप तुलना करना चाहते हैं\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"ध्यान दें कि मैं केवल पाठ मतभेदों की तलाश कर सकता हूं\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"मुझे अन्य पीडीएफ फ़ाइल भेजें जिसकी आप तुलना करना चाहते हैं\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"अपनी पीडीएफ फाइलों की तुलना करना\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"आपकी पीडीएफ फ़ाइलों के बीच कोई पाठ अंतर नहीं है\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"कुछ गलत हो गया, कृपया फिर से प्रयास करें\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"बटन की समय सीमा समाप्त हो गई है, अपनी फ़ाइल या आदेश से प्रारंभ करें\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"परिणामी छवि अमान्य है, पुनः प्रयास करें\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"मुझे अंग्रेजी में अपनी प्रतिक्रिया भेजें\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"प्रतिक्रिया अंग्रेजी में नहीं है, फिर से प्रयास करें\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"आपकी प्रतिक्रिया के लिए धन्यवाद, मैंने इसे अपने डेवलपर को अग्रेषित किया है\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"आपकी फ़ाइल डाउनलोड करने और प्रक्रिया करने के लिए मेरे लिए बहुत बड़ी है\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"ध्यान दें कि यह एक टेलीग्राम बॉट सीमा है और मैं ऐसा कुछ नहीं कर सकता जब तक कि टेलीग्राम इस सीमा को नहीं बदलता\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"अपनी फ़ाइल संसाधित करना\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"उस कार्य का चयन करें जिसे आप करना चाहते हैं\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"सुशोभित\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"पीडीएफ में\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"अंतिम फ़ाइल निकालें\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"मुझे उन छवियों को भेजें जिन्हें आप सुशोभित करना चाहते हैं या एक पीडीएफ फाइल में परिवर्तित करना चाहते हैं\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"ध्यान दें कि छवियों को सुशोभित किया जाएगा और उस क्रम में परिवर्तित किया जाएगा जिसे आप मुझे भेजते हैं\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"आपने मुझे अब तक ये तस्वीरें भेजी हैं:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"नीचे से कार्य का चयन करें यदि आपने मुझे सभी छवियां भेजी हैं, या मुझे छवियां भेजते रहें\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"आपने पहले ही उन सभी छवियों को हटा दिया है जो आपने मुझे भेजी हैं\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} हटा दिया गया है\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"आपने मुझे कोई चित्र नहीं भेजा है।\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"आपने मुझे केवल एक तस्वीर भेजी है।\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"अपनी छवियों को एक पीडीएफ फाइल में सुशोभित और परिवर्तित करना\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"अपनी छवियों को एक पीडीएफ फाइल में बदलना\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"अपनी भाषा चुनें\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"आपकी भाषा को {language}के लिए सेट किया गया है\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"मुझे पीडीएफ फाइलें भेजें जिन्हें आप मर्ज करना चाहते हैं\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"ध्यान दें कि फ़ाइलों को उस क्रम में मर्ज कर दिया जाएगा जिसे आप मुझे भेजते हैं\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"आपने मुझे अब तक ये पीडीएफ फाइलें भेजी हैं:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"प्रेस {done} यदि आपने मुझे उन सभी पीडीएफ फाइलों को भेज दिया है जिन्हें आप विलय करना चाहते हैं या मुझे पीडीएफ फाइलें भेजते रहेंगे\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"आपने पहले ही उन सभी पीडीएफ फाइलों को निकाल दिया है जिन्हें आपने मुझे भेजा है\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"विलय के लिए {file_name} हटा दिया गया है\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"आपने मुझे कोई पीडीएफ फाइल नहीं भेजी है\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"आपने मुझे केवल एक पीडीएफ फाइल भेजी है\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"अपनी पीडीएफ फाइलों का विलय\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"धन्यवाद कहो\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"कॉफ़ी\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"बियर\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"भोजन\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"आप पीडीएफ बॉट का समर्थन कैसे करना चाहते हैं\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"पीडीएफ बॉट के लिए धन्यवाद कहें और इसे चालू रखने में मदद करें\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"कुछ गलत हो गया, फिर से प्रयास करें\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"आपके समर्थन के लिए धन्यवाद!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"पीडीएफ बॉट का अनुवाद करने में मदद करें\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"आपकी PDF फ़ाइल एन्क्रिप्ट की गई है, इसे पहले डिक्रिप्ट करें फिर पुन: प्रयास करें\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"आपकी पीडीएफ फाइल एन्क्रिप्टेड नहीं है\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"गलत पासवर्ड, कृपया पुन: प्रयास करें\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"आपकी पीडीएफ फ़ाइल एक विधि के साथ एन्क्रिप्टेड है जिसे मैं डिक्रिप्ट नहीं कर सकता\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"आपकी PDF फाइल में कोई चित्र नहीं मिला\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"आपकी PDF फ़ाइल में कोई पाठ नहीं मिला\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"मैं आपकी पीडीएफ फाइलों को मर्ज नहीं कर सका क्योंकि यह फ़ाइल अमान्य है: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"आपकी पीडीएफ फ़ाइल में पहले से ही एक टेक्स्ट लेयर है\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"आपकी PDF फ़ाइल अमान्य है\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"संपीड़ित\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"फाइल का आकार {percent}से घटाकर {old_size} से {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"प्रतिशत के आधार पर\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"मार्जिन आकार के लिए\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"मुझे 0 से 100 के बीच एक नंबर भेजें\\n\\n\"\n\"यह आपकी पीडीएफ फाइल और पृष्ठ में सामग्री के बीच बनाए रखने के लिए मार्जिन स्पेस का प्रतिशत है\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"मुझे एक संख्या भेजें जिसे आप मार्जिन आकार को समायोजित करना चाहते हैं\\n\\n\"\n\"सकारात्मक संख्याएं मार्जिन आकार को कम कर देंगी और नकारात्मक संख्याएं इसे बढ़ाएंगी\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"क्रॉप\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"उस फसल प्रकार का चयन करें जिसे आप निष्पादित करना चाहते हैं\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"फसल मान अमान्य हैं, पुन: प्रयास करें\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"डिक्रिप्ट\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"मुझे अपनी पीडीएफ फ़ाइल डिक्रिप्ट करने के लिए पासवर्ड भेजें\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"एन्क्रिप्ट\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"अपनी पीडीएफ फ़ाइल को एन्क्रिप्ट करने के लिए मुझे पासवर्ड भेजें\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"चित्र निकालें\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"पाठ निकालें\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"ग्रेस्केल\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"छवियों के लिए\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"पूर्वावलोकन\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"नाम बदलें\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"फ़ाइल नामों में निम्न वर्णों में से कोई भी नहीं हो सकता, कृपया पुन: प्रयास करें:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"मुझे फ़ाइल का नाम भेजें जिसे आप अपनी पीडीएफ फ़ाइल का नाम बदलना चाहते हैं\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"घुमाएँ\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"उन डिग्रियों का चयन करें जिन्हें आप अपनी पीडीएफ फ़ाइल को दक्षिणावर्त में घुमाना चाहते हैं\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"कारक के आधार पर\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"आयाम के लिए\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"मुझे क्षैतिज और ऊर्ध्वाधर अक्षों के लिए स्केलिंग कारक भेजें\\n\\n\"\n\"उदाहरण: 2 0.5 - यह क्षैतिज अक्ष को दोगुना कर देगा और ऊर्ध्वाधर अक्ष को आधा कर देगा\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"मुझे चौड़ाई और ऊंचाई भेजें उदाहरण\\n\\n\"\n\": 150 200 - यह चौड़ाई को 150 और ऊंचाई को 200 पर सेट करेगा\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"परिमाण\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"उस स्केल प्रकार का चयन करें जिसे आप निष्पादित करना चाहते हैं\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"स्केल मान अमान्य हैं, पुन: प्रयास करें\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"विभाजिन\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"विभाजित श्रेणी अमान्य है, कृपया पुन: प्रयास करें\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"मुझे उन पृष्ठों की सीमा भेजें जिन्हें आप रखना चाहते हैं\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"सामान्य उपयोग\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"सभी पृष्ठों {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      पेज 8 ही\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    पहले तीन पृष्ठ\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"पेज 8 से आगे {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"केवल अंतिम पृष्ठ {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"अंतिम पृष्ठ को छोड़कर सभी पृष्ठों को {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     दूसरा अंतिम पृष्ठ ही\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"पिछले दो पृष्ठों {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  तीसरे और दूसरे अंतिम पृष्ठ\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"उन्नत उपयोग\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    पृष्ठ {pages} और अंत तक\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} पेज {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"उलट क्रम में सभी पृष्ठों {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{page}को छोड़कर {range} पेज {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  पेज {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"आपकी फ़ाइल डाउनलोड और प्रक्रिया करने के लिए मेरे लिए बहुत बड़ी है, कृपया एक अलग फ़ाइल के साथ फिर से प्रयास करें\\n\\n\"\n\"ध्यान दें कि यह सीमा टेलीग्राम द्वारा लागू की जाती है और जब तक टेलीग्राम इसे बदलता नहीं है तब तक मैं कुछ भी नहीं कर सकता।\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"फ़ाइल मेरे लिए आपको भेजने के लिए बहुत बड़ी है\\n\\n\"\n\"ध्यान दें कि यह सीमा टेलीग्राम द्वारा लागू की गई है और जब तक टेलीग्राम इसे नहीं बदलता है तब तक मैं कुछ भी नहीं कर सकता।\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"आपकी फ़ाइल कोई छवि नहीं है, कृपया पुन: प्रयास करें\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"आपके संदेश में कोई छवि नहीं मिली\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"आपकी फ़ाइल पीडीएफ फ़ाइल नहीं है, कृपया फिर से प्रयास करें\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"कार्रवाई रद्द\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"यहां आपकी रिजल्ट फाइल है\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"कूद\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"मुझे वह पाठ भेजें जिसे आप अपनी पीडीएफ फ़ाइल में लिखना चाहते हैं\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"मुझे वह फ़ॉन्ट भेजें जिसका उपयोग आप पीडीएफ फ़ाइल के लिए करना चाहते हैं या डिफ़ॉल्ट फ़ॉन्ट का उपयोग करने के लिए {skip} दबाएंगे\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"समर्थित फोंट की सूची के लिए यहां देखें: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"अज्ञात फ़ॉन्ट, कृपया फिर से प्रयास करें\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"अपनी पीडीएफ फ़ाइल बनाना\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"मुझे पीडीएफ फाइल भेजें जिसे आप वॉटरमार्क जोड़ना चाहेंगे\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"मुझे वाटरमार्क पीडीएफ फाइल भेजें\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"अपनी पीडीएफ फ़ाइल पर वॉटरमार्क जोड़ना\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"आपने मुझे यह वेबपेज पहले ही भेज दिया है और मैं अभी भी इसे परिवर्तित कर रहा हूं\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"अपने वेबपेज को एक पीडीएफ फाइल में बदलना\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"अपने वेबपेज तक पहुँचने में असमर्थ\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"अपने वेबपेज को कनवर्ट करने में विफल\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/hu_HU/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: hu\\n\"\n\"Language-Team: Hungarian\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: hu\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Mégse gombra\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Megtett\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Vissza\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Hiba történt, kezdje elölről a fájlt vagy a parancsot\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Nem sikerült befejezni a folyamatot\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Üdvözöljük a PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Főbb jellemzők:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Vízjel tömörítése, összevonása, előnézete, átnevezése, felosztása és vízjel hozzáadása PDF fájlokhoz\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- PDF fájlok létrehozása szöveges üzenetekből\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Képek és szöveg kinyerés PDF fájlokból\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- PDF fájlok konvertálása képekké\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Weboldalak és képek konvertálása PDF fájlokká\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Szépítse a kézzel írt jegyzetek képeit PDF fájlokba\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- És még sok más...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Írja be {command} , hogy hogyan kell használni a PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Nyelv beállítása 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Csatlakozás a csatornához\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Támogatás PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"A legtöbb feladatot az alábbiak egyikének elküldésével végezheti el:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF fájlok\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Képek\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Weboldal linkek\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"A többi feladat a következő parancsokkal végezhető el:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - PDF fájlok összehasonlítása\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - PDF fájlok egyesítése\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - több kép konvertálása és kombinálása PDF-fájlokká\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - PDF fájlok létrehozása szöveges üzenetekből\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - vízjel hozzáadása PDF fájlokhoz\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Küldje el nekem az egyik PDF-fájlt, amelyet szeretne összehasonlítani\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Ne feledje, hogy csak szövegkülönbségeket kereshetek\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Küldje el nekem a másik PDF fájlt, hogy tetszeni fog összehasonlítani\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"A PDF-fájlok összehasonlítása\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"A PDF-fájlok között nincsenek szöveges különbségek\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Valami elromlott, kérem, próbálkozzon újra.\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"A gomb lejárt, kezdje elölről a fájllal vagy a paranccsal\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"A kapott kép érvénytelen, próbálkozzon újra\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Küldje el visszajelzését angolul\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"A visszajelzés nem angol nyelvű, próbálkozzon újra\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Köszönjük visszajelzését, továbbítottam a fejlesztőmnek\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"A fájl túl nagy nekem, hogy töltse le és feldolgozza\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Ne feledje, hogy ez egy Telegram Bot korlátozás, és semmit sem tehetek, ha a Telegram nem változtatja meg ezt a korlátot\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"A fájl feldolgozása\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Válassza ki a végrehajtani kívánt feladatot\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Szépít\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"PDF-fájlba\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Az utolsó fájl eltávolítása\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Küldje el nekem azokat a képeket, amelyeket meg szeretne szépíteni vagy PDF-fájllá konvertálni\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Ne feledje, hogy a képeket a küldés sorrendjében szépítik és konvertálják\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Ezeket a képeket küldted nekem eddig:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Válassza ki a feladatot alulról, ha elküldte nekem az összes képet, vagy küldje el nekem a képeket\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Már eltávolítottad az összes képet, amit küldtél nekem\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} eltávolították\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Nem küldtél nekem képeket\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Csak egy képet küldtél nekem\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"A képek szépítése és konvertálása PDF-fájllá\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Képek konvertálása PDF-fájllá\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Válassza ki a nyelvet\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"A nyelved {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Küldje el nekem azokat a PDF-fájlokat, amelyeket egyesíteni szeretne\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Vegye figyelembe, hogy a fájlok összevonásra kerülnek abban a sorrendben, amelyet ön küld nekem\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Eddig ezeket a PDF-fájlokat küldted nekem:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Nyomja meg a {done} , ha elküldte nekem az összes PDF-fájlt, amelyet egyesíteni szeretne, vagy továbbra is elküldi nekem a PDF-fájlokat\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Már eltávolította az összes PDF-fájlt, amit elküldött nekem\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} eltávolították az összeolvadás miatt\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Nem küldött nekem PDF-fájlt\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Csak egy PDF fájlt küldtél nekem.\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"A PDF-fájlok egyesítése\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Mondj köszönetet\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Kávé\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Sör\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Étkezés\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Válassza ki, hogyan szeretné támogatni a PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Köszönj a PDF Botnak, és segíts megőrizni a működését\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Hiba történt, próbálkozzon újra\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Köszönöm a támogatást!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Segítség a PDF Bot fordításában\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"A PDF-fájl titkosítva van, először fejtse vissza, majd próbálja újra\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"A PDF-fájl nincs titkosítva\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Helytelen jelszó, próbálkozzon újra\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"A PDF-fájl titkosítva van egy olyan módszerrel, amelyet nem tudok visszafejteni\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Nem található kép a PDF-fájlban\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"A PDF-fájlban nem található szöveg\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Nem sikerült egyesíteni a PDF-fájlokat, mert ez a fájl érvénytelen: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"A PDF-fájlnak már van szövegrétege\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"A PDF-fájl érvénytelen\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Tömöríteni\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Fájlméret {percent}-kal csökkentve – {old_size} -ről {new_size}-re\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Százalékban\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"A margó méretéhez\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"0 és 100 közötti szám küldése\\n\\n\"\n\"Ez a PDF-fájl tartalma és az oldal közötti margóterület százalékos aránya.\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Küldjön nekem egy számot, amelyet módosítani szeretne a margó méretéhez\\n\\n\"\n\"A pozitív számok csökkentik a margó méretét, a negatív számok pedig növelik azt\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Termés\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Válassza ki a végrehajtani kívánt vágási típust\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"A vágási értékek érvénytelenek, próbálkozzon újra\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Visszafejteni\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Küldje el a jelszót a PDF-fájl visszafejtéséhez\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Titkosítani\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Küldje el a jelszót a PDF-fájl titkosításához\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Képek kinyerése\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Szöveg kinyerése\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Szürkeárnyalatos\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Tovább a képekhez\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Előnézet\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Átnevez\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"A fájlnevek nem tartalmazhatják a következő karaktereket, próbálkozzon újra:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Küldje el nekem azt a fájlnevet, amelyre át szeretné nevezni a PDF-fájlt\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Forgatni\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Válassza ki, hogy milyen mértékben szeretné elforgatni a PDF-fájlt az óramutató járásával megegyező irányban\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Tényező szerint\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Méretre\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Küldje el a vízszintes és függőleges tengelyek méretezési tényezőit\\n\\n\"\n\"Példa: 2 0,5 - ez megduplázza a vízszintes tengelyt és felére csökkenti a függőleges tengelyt\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Küldje el nekem a szélességet és a magasságot\\n\\n\"\n\"Példa: 150 200 - ez a szélességet 150-re, a magasságot pedig 200-ra állítja\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Skála\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Válassza ki a végrehajtani kívánt méretezési típust\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"A skálaértékek érvénytelenek, próbálkozzon újra\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Split\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"A felosztási tartomány érvénytelen, kérjük, próbálja újra\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Küldje el nekem a tartomány oldalak, hogy szeretné tartani\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Általános használat\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      összes oldal\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      csak a 8. oldal\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    első három oldal\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     a 8. oldaltól\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"csak az utolsó oldal {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    az utolsó oldal kivételével az összes oldalt\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"csak {range}     második utolsó oldal\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    utolsó két oldal\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  harmadik és második utolsó oldal\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Speciális használat\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    oldalak {pages} és a végéig\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} oldalak {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   az összes oldalt fordított sorrendben\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} oldalak {pages} , kivéve {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  oldalak {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"A fájl túl nagy ahhoz, hogy letöltsem és feldolgozzam, kérjük, próbálja újra egy másik fájllal\\n\\n\"\n\"Ne feledje, hogy ezt a korlátozást a Telegram érvényesíti, és semmit sem tehetek, hacsak a Telegram nem változtatja meg\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"A fájl túl nagy ahhoz, hogy elküldjem Önnek\\n\\n\"\n\"Vegye figyelembe, hogy ezt a korlátot a Telegram érvényesíti, és semmit sem tehetek, hacsak a Telegram nem változtatja meg\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"A fájl nem kép, kérjük, próbálja újra\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Nem található kép az üzenetben\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"A fájl nem PDF-fájl, próbálkozzon újra\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Művelet megszakítva\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Itt van az eredményfájl\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Átugrik\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Küldje el a szöveget, hogy szeretne írni a PDF-fájl\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Küldje el nekem azt a betűtípust, amelyet használni szeretne a PDF-fájlhoz, vagy nyomja le a {skip} az alapértelmezett betűtípus használatához\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"A támogatott betűtípusok listáját itt tekintheti meg: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Ismeretlen betűtípus, próbálkozzon újra\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"A PDF-fájl létrehozása\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Küldje el nekem a PDF fájlt, hogy szeretne hozzáadni egy vízjel\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Küldje el a vízjel PDF-fájlt\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Vízjel hozzáadása a PDF-fájlhoz\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Már elküldted nekem ezt a weboldalt, és még mindig konvertálom\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"A weboldal konvertálása PDF-fájllá\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Nem lehet elérni a weboldalát\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Nem sikerült konvertálni a weboldalt\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/id_ID/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: id\\n\"\n\"Language-Team: Indonesian\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: id\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Membatalkan\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Dilakukan\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Kembali\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Ada yang tidak beres, mulai dari awal dengan file atau perintah Anda\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Gagal menyelesaikan proses\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Selamat datang di PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Fitur utama:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Kompres, gabungkan, pratinjau, ganti nama, bagi dan tambahkan cap air ke file PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Membuat file PDF dari pesan teks\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Mengekstrak gambar dan teks dari file PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Mengkonversi file PDF menjadi gambar\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Mengkonversi halaman web dan gambar ke dalam file PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Mempercantik gambar catatan tulisan tangan ke dalam file PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Dan banyak lagi...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Ketik {command} untuk melihat cara menggunakan BOT PDF\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Atur Pengaturan 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Gabung Kanal\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Dukung PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Anda dapat melakukan sebagian besar tugas dengan mengirimi saya salah satu hal berikut:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- Berkas PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Gambar\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Link halaman web\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Sisa tugas dapat dilakukan dengan menggunakan perintah berikut:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - bandingkan file PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - menggabungkan file PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - mengonversi dan menggabungkan beberapa gambar menjadi file PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - buat file PDF dari pesan teks\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - tambahkan cap air ke file PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Kirimi saya salah satu file PDF yang ingin Anda bandingkan\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Perhatikan bahwa saya hanya bisa mencari perbedaan teks\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Kirimkan file PDF lain yang ingin Anda bandingkan\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Membandingkan file PDF Anda\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Tidak ada perbedaan teks antara file PDF Anda\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Ada yang tidak beres, silakan coba lagi\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Tombol telah kedaluwarsa, mulai dari awal dengan file atau perintah Anda\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Gambar yang dihasilkan tidak valid, coba lagi\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Kirimkan saya umpan balik Anda dalam bahasa Inggris\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Umpan balik tidak dalam bahasa Inggris, coba lagi\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Terima kasih atas tanggapan Anda, saya telah meneruskannya ke pengembang saya\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"File Anda terlalu besar bagi saya untuk diunduh dan diproses\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Perhatikan bahwa ini adalah batasan Telegram Bot dan tidak ada yang bisa saya lakukan kecuali Telegram mengubah batas ini.\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Memproses file Anda\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Pilih tugas yang ingin Anda jalankan\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Mempercantik\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Ke PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Hapus file terakhir\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Kirimkan gambar yang ingin Anda percantik atau ubah menjadi file PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Perhatikan bahwa gambar akan dipercantik dan dikonversi dalam urutan yang Anda kirimkan kepada saya\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Anda telah mengirimi saya gambar-gambar ini sejauh ini:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Pilih tugas dari bawah jika Anda telah mengirimi saya semua gambar, atau terus mengirimi saya gambar\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Anda telah menghapus semua gambar yang Anda kirimkan kepada saya\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} telah dihapus\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Anda belum mengirimi saya gambar apa pun\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Anda hanya mengirimi saya satu gambar\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Mempercantik dan mengonversi gambar Anda menjadi file PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Mengonversi gambar Anda menjadi file PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Pilih bahasa Anda\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Bahasa Anda telah diatur untuk {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Kirimi saya file PDF yang ingin Anda gabungkan\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Perhatikan bahwa file akan digabungkan dalam urutan yang Anda kirimkan kepada saya\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Anda telah mengirimi saya file PDF ini sejauh ini:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Tekan {done} jika Anda telah mengirimi saya semua file PDF yang ingin Anda gabungkan atau terus kirimi saya file PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Anda telah menghapus semua file PDF yang Telah Anda kirimkan kepada saya\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} telah dihapus untuk penggabungan\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Anda belum mengirimi saya file PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Anda hanya mengirimi saya satu file PDF\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Menggabungkan file PDF Anda\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Ucapkan Terima Kasih\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Kopi\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Bir\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Makanan\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Pilih cara yang Anda inginkan untuk mendukung PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Ucapkan terima kasih kepada PDF Bot dan bantu agar tetap dapat berjalan\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Ada yang tidak beres, coba lagi\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Terima kasih atas dukungan Anda!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Membantu menerjemahkan PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"File PDF Anda dienkripsi, dekripsi terlebih dahulu lalu coba lagi\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"File PDF Anda tidak dienkripsi\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Kata sandi salah, silakan coba lagi\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"File PDF Anda dienkripsi dengan metode yang tidak dapat saya dekripsi\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Tidak ada gambar yang ditemukan di file PDF Anda\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Tidak ada teks yang ditemukan di file PDF Anda\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Saya tidak dapat menggabungkan file PDF Anda karena file ini tidak valid: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"File PDF Anda sudah memiliki lapisan teks\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"File PDF Anda tidak valid\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Kompres\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Ukuran file dikurangi {percent}, dari {old_size} ke {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Berdasarkan persentase\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Untuk ukuran margin\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Kirimi saya angka antara 0 dan 100\\n\\n\"\n\"Ini adalah persentase ruang margin untuk dipertahankan antara konten dalam file PDF Anda dan halaman\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Kirimi saya nomor yang ingin Anda sesuaikan ukuran marginnya\\n\\n\"\n\"Angka positif akan mengurangi ukuran margin dan angka negatif akan meningkatkannya\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Potong\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Pilih jenis pemotongan yang ingin Anda lakukan\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Nilai potong tidak valid, coba lagi\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Dekripsi\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Kirimi saya kata sandi untuk mendekripsi file PDF Anda\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Enkripsi\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Kirimi saya kata sandi untuk mengenkripsi file PDF Anda\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Ekstrak gambar\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Ekstrak teks\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Skala abu-abu\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Ke gambar\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Tinjauan\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Ubah nama\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Nama file tidak boleh berisi karakter berikut, coba lagi:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Kirimi saya nama file yang ingin Anda ganti nama file PDF Anda menjadi\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Memutar\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Pilih derajat yang ingin Anda putar file PDF Anda searah jarum jam\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Berdasarkan faktor\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Ke dimensi\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Kirimkan saya faktor penskalaan untuk sumbu horizontal dan vertikal\\n\\n\"\n\"Contoh: 2 0,5 - ini akan menggandakan sumbu horizontal dan membagi dua sumbu vertikal\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Kirimkan saya lebar dan tinggi\\n\\n\"\n\"Contoh: 150 200 - ini akan mengatur lebar menjadi 150 dan tinggi menjadi 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Skala\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Pilih jenis skala yang ingin Anda lakukan\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Nilai skala tidak valid, coba lagi\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Pisah\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Rentang split tidak valid, silakan coba lagi\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Kirimi saya rentang halaman yang ingin Anda simpan\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Penggunaan umum\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      semua halaman\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      halaman 8 saja\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    tiga halaman pertama\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     dari halaman 8 dan seterusnya\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"halaman terakhir {range}     saja\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    semua halaman kecuali halaman terakhir\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"halaman terakhir kedua {range}     saja\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    dua halaman terakhir\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"halaman terakhir ketiga dan kedua {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Penggunaan tingkat lanjut\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"halaman {range} {pages} dan sampai akhir\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"halaman {range} {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   semua halaman dalam urutan terbalik\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"halaman {range} {pages} kecuali {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"halaman {range} {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"File Anda terlalu besar untuk saya unduh dan proses, coba lagi dengan file lain\\n\\n\"\n\"Perhatikan bahwa batas ini diberlakukan oleh Telegram dan tidak ada yang bisa saya lakukan kecuali Telegram mengubahnya\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Filenya terlalu besar untuk saya kirimkan kepada Anda\\n\\n\"\n\"Perhatikan bahwa batas ini diberlakukan oleh Telegram dan tidak ada yang dapat saya lakukan kecuali Telegram mengubahnya\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"File Anda bukan gambar, silakan coba lagi\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Tidak ada gambar yang ditemukan dalam pesan Anda\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"File Anda bukan file PDF, silakan coba lagi\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Aksi dibatalkan\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Berikut adalah file hasil Anda\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Lewat\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Kirimi saya teks yang ingin Anda tulis ke file PDF Anda\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Kirimi saya font yang ingin Anda gunakan untuk file PDF atau tekan {skip} untuk menggunakan font default\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Lihat di sini untuk daftar font yang didukung: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Fon tak dikenal, silakan coba kembali\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Membuat file PDF Anda\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Kirimi saya file PDF yang ingin Anda tambahkan cap air\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Kirimi saya file PDF cap air\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Menambahkan cap air ke file PDF Anda\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Anda telah mengirimi saya halaman web ini dan saya masih mengonversinya\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Mengonversi halaman web Anda menjadi file PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Tidak dapat menjangkau halaman web Anda\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Gagal mengonversi halaman web Anda\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/it_IT/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: it\\n\"\n\"Language-Team: Italian\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: it\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Annulla\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Fatto\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Indietro\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Si è verificato un problema, ricomincia con il file o il comando\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Impossibile completare il processo\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Benvenuti in PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Caratteristiche principali:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Comprimere, unire, visualizzare in anteprima, rinominare, dividere e aggiungere filigrana ai file PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Creare file PDF da messaggi di testo\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Estrarre immagini e testo da file PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Convertire file PDF in immagini\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Convertire pagine Web e immagini in file PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Abbellire le immagini note scritte a mano in file PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"E altro ancora...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Digitare {command} per vedere come usare PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Imposta Lingua 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Unisciti al canale\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Supporta PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"È possibile eseguire la maggior parte delle attività inviandomi una delle operazioni seguenti:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- File PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Immagini\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Collegamenti alle pagine Web\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Il resto delle attività può essere eseguito utilizzando i comandi seguenti:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - confronta i file PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - unire file PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - converti e combina più immagini in file PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - creare file PDF da messaggi di testo\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - aggiungere filigrana ai file PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Inviami uno dei file PDF che ti piacerà confrontare\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Si noti che è possibile cercare solo differenze di testo\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Inviami l'altro PDF che vuoi confrontare\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Sto confrontando i tuoi PDF\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Non ci sono differenze di testo tra i file PDF\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Qualcosa è andato storto, riprova\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Il pulsante è scaduto, ricomincia con il file o il comando\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"L'immagine risultante non è valida, riprova\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Inviami il tuo feedback in inglese\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Il feedback non è in inglese, riprova\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Grazie per il tuo feedback, l'ho inoltrato al mio sviluppatore\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Il tuo file è troppo grande per essere scaricato ed elaborare\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Si noti che questa è una limitazione di Telegram Bot e non c'è niente che io possa fare a meno che Telegram non cambi questo limite\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Elaborazione del file\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Seleziona l'operazione che vuoi eseguire\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Abbellire\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"In PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Rimuovi ultimo file\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Inviami le immagini che ti piacerebbe abbellire o convertire in un file PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Nota che le immagini saranno abbellite e convertite nell'ordine in cui mi invii\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Mi hai inviato queste immagini finora:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Seleziona l'attività dal basso se mi hai inviato tutte le immagini o continua a inviarmi le immagini\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Hai già rimosso tutte le immagini che mi hai inviato\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} è stato rimosso\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Non mi hai inviato nessuna immagine\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Mi hai inviato solo un'immagine\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Abbellire e convertire le immagini in un file PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Conversione delle immagini in un file PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Seleziona la tua lingua\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"La tua lingua è stata impostata {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Inviami i file PDF che ti piacerà unire\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Si noti che i file verranno uniti nell'ordine in cui mi invii\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Finora mi hai inviato questi file PDF:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Premi {done} se mi hai inviato tutti i file PDF che ti piacerà unire o continua a inviarmi i file PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Hai già rimosso tutti i file PDF che mi hai inviato\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} stato rimosso per l'unione\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Non mi hai inviato alcun file PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Mi hai inviato solo un file PDF\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Sto unendo i tuoi PDF\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Di' grazie\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Caffè\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Birra\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Pasto\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Selezione come vuoi supportare PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Ringrazia PDF Bot ed aiutalo a mantenerlo attivo\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Si è verificato un problema, riprova\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Grazie per il tuo supporto!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Aiuta a tradurre PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Il file PDF è crittografato, decrittografarlo prima, quindi riprovare\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Il file PDF non è cifrato\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Password errata, riprova\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Il file PDF è crittografato con un metodo che non è possibile decrittografare\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Nessuna immagine trovata nel file PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Nessun testo trovato nel file PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Non ho potuto unire i tuoi PDF in quanto questo file non è valido: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Il file PDF ha già un livello di testo\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Il file PDF non è valido\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Comprimi\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Dimensioni del file ridotte di {percent}, da {old_size} a {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Per percentuale\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Alla dimensione del margine\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Inviatemi un numero compreso tra 0 e 100\\n\\n\"\n\"Questa è la percentuale di spazio di margine da conservare tra il contenuto del file PDF e la pagina\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Inviami un numero che desideri modificare la dimensione del margine\\n\\n\"\n\"I numeri positivi diminuiranno la dimensione del margine e i numeri negativi lo aumenteranno\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Ritaglia\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Seleziona il tipo di ritaglio che desideri eseguire\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"I valori di ritaglio non sono validi, riprovare\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Decifra\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Inviami la password per decifrare il file PDF\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Cifra\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Inviami la password per cifrare il file PDF\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Estrai immagini\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Estrarre testo\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Scala di grigi\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Vai alle immagini\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Anteprima\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Rinomina\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"I nomi dei file non possono contenere i seguenti caratteri, per favore riprova: %s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Inviami il nome in cui vuoi rinominare il file PDF\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Ruotare\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Seleziona di quanti gradi, in senso orario, vorresti ruotare il PDF\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Per fattore\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Alla quota\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Inviami i fattori di scala per gli assi orizzontale e verticale\\n\\n\"\n\"Esempio: 2 0,5 - questo raddoppierà l'asse orizzontale e dimezzerà l'asse verticale\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Inviami la larghezza e l'altezza\\n\\n\"\n\"Esempio: 150 200 - questo imposterà la larghezza su 150 e l'altezza su 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Ridimensiona\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Seleziona il tipo di scala che desideri eseguire\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"I valori della scala non sono validi, riprovare\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Dividi\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"L'intervallo diviso non è valido, riprova\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Inviami l'intervallo di pagine che ti piacerà mantenere\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Uso generale\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      tutte le pagine\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      solo a pagina 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    prime tre pagine\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     da pagina 8 in poi\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     'ultima pagina\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    tutte le pagine ad eccezione dell'ultima pagina\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     'ultima pagina\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    ultime due pagine\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  terza e seconda pagina\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Utilizzo avanzato\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    pagine {pages} e fino alla fine\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} pagine {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   tutte le pagine in ordine invertito\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} pagine {pages} ad eccezione {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  pagine {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Il tuo file è troppo grande per me da scaricare ed elaborare, riprova con un file diverso\\n\\n\"\n\"Tieni presente che questo limite è applicato da Telegram e non c'è nulla che io possa fare a meno che Telegram non lo cambi\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Il file è troppo grande per poterti inviare\\n\\n\"\n\"Nota che questo limite è applicato da Telegram e non c'è nulla che io possa fare a meno che Telegram non lo cambi\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Il tuo file non è un'immagine, riprova\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Nessuna immagine trovata nel tuo messaggio\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Il file non è un file PDF, riprovare\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Azione annullata\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Ecco il tuo file completato\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Saltare\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Manda il testo che ti piacerebbe scrivere nel tuo file PDF\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Inviami il tipo di carattere che ti piacerà usare per il file PDF o premi {skip} usare il tipo di carattere predefinito\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Vedi qui per l'elenco dei tipi di carattere supportati: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Tipo di carattere sconosciuto, riprovare\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Sto creando il tuo file PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Inviami il file PDF al quale vorresti aggiungere un watermark\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Inviami il watermark in PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Sto aggiungendo il watermark al tuo PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Mi hai già inviato questa pagina web e la sto ancora convertendo\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Conversione della pagina Web in un file PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Impossibile raggiungere la pagina web\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Impossibile convertire la pagina web\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/ja_JP/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: ja\\n\"\n\"Language-Team: Japanese\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: ja\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"キャンセル\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"完成です\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"戻る\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"問題が発生しました。ファイルまたはコマンドからやり直してください\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"プロセスを完了できませんでした\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"PDFボットへようこそ!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"主な特徴:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- PDFファイルに対する圧縮、マージ、プレビュー、名前変更、分割、透かしの追加\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- テキストメッセージからPDFファイルを作成\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- PDFファイルから画像やテキストを抽出\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- PDFファイルを画像に変換\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- ウェブページと画像をPDFファイルに変換\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- 手書きのノート画像をPDFファイルに美化\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- そしてもっと..\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"PDF ボットの使用方法を確認するには、「 {command} 」と入力します。\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"言語設定 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"チャネルに参加\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"PDFボットをサポート\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"タスクの大半は、次のいずれかを送信することで実行できます。\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDFファイル\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- 画像\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- ウェブページへのリンク\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"残りのタスクは、次のコマンドを使用して実行できます。\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - PDF ファイルを比較する\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - PDFファイルをマージ\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - 複数の画像をPDFファイルに変換して結合する\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - テキストメッセージからPDFファイルを作成する\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - PDF ファイルに透かしを追加する\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"比較したい PDF ファイルの 1 つを送信してください\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"テキストの違いしか探せることができないことに注意してください\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"比較したい他の PDF ファイルを送信してください\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"PDF ファイルの比較\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"PDF ファイル間にテキストの違いはありません\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"何かが間違っていた、もう一度やり直してください\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"ボタンの有効期限が切れている場合は、ファイルまたはコマンドで最初からやり直してください\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"結果の画像が無効です。もう一度やり直してください\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"フィードバックを英語で受け取る\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"フィードバックは英語ではありません、もう一度やり直してください\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"あなたのフィードバックをありがとう、私はそれを私の開発者に転送しました\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"ファイルが大きすぎてダウンロードして処理できません\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"これは電報ボットの制限であり、テレグラムがこの制限を変更しない限り、私は何もできませんのでご注意ください\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"ファイルの処理\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"実行するタスクを選択します。\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"美化\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"PDFへ\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"最後のファイルを削除\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"PDFファイルを美化したり、PDFファイルに変換したりしたい画像を送ってください\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"画像は美化され、あなたが私を送る順序で変換されることに注意してください\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"あなたはこれまでに私にこれらの画像を送ってくれました:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"すべての画像を送信した場合は、下からタスクを選択するか、画像を送信し続けます\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"あなたはすでにあなたが私に送ったすべての画像を削除しました\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} が削除されました\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"あなたは私に画像を送っていません\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"あなたは私に1つの画像しか送っていません\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"画像を美しくしてPDFファイルに変換する\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"画像をPDFファイルに変換する\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"言語を選択する\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"言語が {language}に設定されています\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"マージしたい PDF ファイルを送信する\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"ファイルは、あなたが私を送信する順序でマージされることに注意してください\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"あなたはこれまでに私にこれらのPDFファイルを送ってきました:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"{done} を押すと、PDFファイルをマージしたり、PDFファイルを送信し続けたりしたいPDFファイルをすべて送信した場合\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"送信したすべての PDF ファイルは既に削除されています\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} はマージのために削除されました\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"PDFファイルを送っていない\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"PDFファイルを1つしか送っていない\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"PDF ファイルのマージ\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"感謝を言う\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"コーヒー\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"ビール\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"食事\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"PDFボットのサポート方法を選択する\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"PDFボットに感謝し、それを実行し続けるのに役立ちます\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"問題が発生しました。もう一度やり直してください\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"ご支援ありがとうございます!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"PDFボットの翻訳を支援\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"PDFファイルは暗号化されていますので、最初に復号化してから再試行してください\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"PDF ファイルが暗号化されていない\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"パスワードが正しくありません。もう一度やり直してください\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"PDFファイルが暗号化されていない方法で暗号化されています\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"PDFファイルに画像が見つかりません\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"PDF ファイルにテキストが見つかりません\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"このファイルが無効であるため、PDFファイルをマージできませんでした。 %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"PDF ファイルにテキストレイヤーが既に存在する\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"PDF ファイルが無効です\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"圧縮\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"ファイル サイズを {percent}減らして、 {old_size} から {new_size}に\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"パーセンテージで\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"余白サイズへ\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"0 から 100 までの数値を送ってください\\n\\n\"\n\"これは、PDF ファイルのコンテンツとページの間に保持する余白スペースの割合です。\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"マージンサイズを調整する番号を送ってください\\n\\n\"\n\"正の数値はマージンサイズを縮小し、負の数値はマージンサイズを増加させます\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"作物\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"実行する作物の種類を選択します\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"トリミング値が無効です。もう一度やり直してください\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"復 号 化\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"PDFファイルの暗号化を解除するためのパスワードを送信する\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"暗号化\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"PDFファイルを暗号化するためのパスワードを送信する\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"画像の抽出\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"テキストの抽出\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"グレースケール\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"画像へ\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"プレビュー\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"変更\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"ファイル名に次の文字を含めることはできません。もう一度やり直してください。\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"PDFファイルの名前を変更したいファイル名を私に送ってください\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"回転\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"PDF ファイルを時計回りに回転する度を選択します。\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"要因別\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"ディメンションへ\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"水平軸と垂直軸のスケーリング係数を送ってください\\n\\n\"\n\"例:2 0.5-これにより、水平軸が2倍になり、垂直軸が半分になります\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"幅と高さを送ってください\\n\\n\"\n\"例: 150 200 - 幅を 150 に、高さを 200 に設定します。\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"スケール\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"実行するスケールタイプを選択します\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"スケール値が無効です。もう一度やり直してください\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"分割\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"分割範囲が無効です。もう一度やり直してください\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"あなたが保持したいページの範囲を私に送ってください\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"一般的な使用法\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"すべてのページを{range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      ページ 8 のみ\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"最初の 3 ページを{range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     8 ページ以降\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"最後のページのみ{range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"最後のページを除くすべてのページを {range}    する\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"最後のページの2番目のページのみ{range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"最後の2ページを{range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"最後のページと最後のページの3番目と2番目のページを{range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"高度な使用法\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"ページ {pages} をし、最後まで{range}    する\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} ページ {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"すべてのページを逆順に{range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{page}を除くページ {pages} を{range} します。\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  ページ {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"ファイルが大きすぎてダウンロードして処理できません。別のファイルでもう一度お試しください\\n\\n\"\n\"この制限はTelegramによって適用されており、Telegramが変更しない限り、私にできることは何もないことに注意してください\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"ファイルが大きすぎて送信できません\\n\\n\"\n\"この制限はTelegramによって強制されており、Telegramが変更しない限り私にできることは何もないことに注意してください\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"ファイルが画像ではありません。もう一度やり直してください\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"メッセージに画像が見つかりません\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"ファイルが PDF ファイルではありません。\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"アクションがキャンセルされました\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"ここにあなたの結果ファイルがあります\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"スキップ\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"PDFファイルに書き込みたいテキストを送ってください\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"PDFファイルに使用したいフォントを送るか、 {skip} を押してデフォルトのフォントを使用してください\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"サポートされているフォントの一覧については、ここを参照してください: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"不明なフォントです。\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"PDF ファイルの作成\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"透かしを追加したいPDFファイルを送ってください\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"透かしPDFファイルを送ってください\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"PDF ファイルにウォーターマークを追加する\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"あなたはすでに私にこのウェブページを送ってきました、そして私はまだそれを変換しています\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"ウェブページをPDFファイルに変換する\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"ウェブページにアクセスできない\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"ウェブページの変換に失敗しました\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/ko_KR/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: ko\\n\"\n\"Language-Team: Korean\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: ko\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"취소\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"수행\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"뒤로\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"문제가 발생했습니다. 파일 또는 명령으로 다시 시작하십시오.\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"프로세스를 완료하지 못했습니다.\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"PDF 봇에 오신 것을 환영합니다!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"주요 기능:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- 압축, 병합, 미리보기, 이름 바꾸기, 분할 및 PDF 파일에 워터 마크를 추가\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- 문자 메시지에서 PDF 파일 만들기\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- PDF 파일에서 이미지와 텍스트를 추출\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- 이미지로 PDF 파일을 변환\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- 웹 페이지와 이미지를 PDF 파일로 변환\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- PDF 파일에 필기 노트 이미지를 아름답게\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- 그리고 더 많은 ...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"PDF 봇 사용 방법을 보려면 {command} 입력\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"언어 설정 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"채널 가입\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"지원 PDF 봇\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"다음 중 하나를 보내서 대부분의 작업을 수행할 수 있습니다.\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF 파일\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- 이미지\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- 웹 페이지 링크\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"나머지 작업은 다음 명령을 사용하여 수행할 수 있습니다.\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - PDF 파일을 비교\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - PDF 파일 병합\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - 변환및 PDF 파일로 여러 이미지를 결합\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - 문자 메시지에서 PDF 파일을 만듭니다.\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - PDF 파일에 워터 마크 추가\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"비교하려는 PDF 파일 중 하나를 보내주세요.\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"텍스트 차이만 찾을 수 있습니다.\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"비교하려는 다른 PDF 파일을 보내주세요.\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"PDF 파일 비교\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"PDF 파일 간에 텍스트 차이가 없습니다.\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"뭔가 잘못, 다시 시도하십시오\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"버튼이 만료되었습니다. 파일 또는 명령으로 다시 시작\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"결과 이미지가 잘못되었습니다. 다시 시도하십시오.\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"영어로 피드백 보내기\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"피드백은 영어로되지 않습니다, 다시 시도\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"의견을 보내 주셔서 감사합니다.\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"파일이 너무 커서 다운로드하고 처리하지 않습니다.\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"이것은 전보 봇 제한이며 전보가이 제한을 변경하지 않는 한 내가 할 수있는 것은 아무것도 없다는 것을 유의하십시오.\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"파일 처리\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"수행하려는 작업 선택\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"아름 답게\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"PDF로\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"마지막 파일 제거\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"PDF 파일로 아름답게 변환하거나 변환하려는 이미지를 보내주십시오.\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"이미지를 아름답게 만들고 보내주는 순서대로 변환됩니다.\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"지금까지 다음 이미지를 보냈습니다.\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"모든 이미지를 보낸 경우 아래에서 작업을 선택하거나 이미지를 계속 전송합니다.\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"나에게 보낸 모든 이미지를 이미 삭제했습니다.\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} 제거되었습니다.\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"당신은 나에게 어떤 이미지도 보내지 않았습니다\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"당신은 나에게 하나의 이미지 만 보냈습니다\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"이미지를 아름답게 만들고 PDF 파일로 변환\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"이미지를 PDF 파일로 변환\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"언어 선택\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"언어가 {language}설정되었습니다.\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"병합하려는 PDF 파일 보내기\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"파일을 보내주는 순서대로 병합됩니다.\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"지금까지 나에게 이러한 PDF 파일을 보냈습니다.\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"병합하거나 PDF 파일을 계속 보내려면 {done} 누르면\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"나에게 보낸 모든 PDF 파일을 이미 제거했습니다.\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"병합을 위해 {file_name} 제거되었습니다.\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"PDF 파일을 보내지 않으셨나요?\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"PDF 파일 하나만 보냈습니다.\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"PDF 파일 병합\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"고마워요 말\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"커피\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"맥주\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"식사\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"PDF 봇을 지원하는 방법 선택\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"PDF 봇에 감사하고 실행 유지 하는 데 도움이\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"문제가 발생했습니다. 다시 시도하십시오.\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"당신의 지원에 감사드립니다!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"PDF 봇 번역 도움말\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"PDF 파일이 암호화되었으므로 먼저 암호를 해독 한 다음 다시 시도하십시오.\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"PDF 파일이 암호화되지 않음\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"잘못된 암호, 다시 시도하십시오.\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"PDF 파일은 해독할 수 없는 방법으로 암호화됩니다.\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"PDF 파일에 이미지가 없습니다.\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"PDF 파일에 텍스트가 없습니다.\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"이 파일이 유효하지 않으므로 PDF 파일을 병합 할 수 없습니다. %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"PDF 파일에 이미 텍스트 레이어가 있습니다.\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"PDF 파일이 잘못되었습니다.\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"압축\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"{old_size} {new_size}파일 크기가 {percent}감소했습니다.\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"백분율로\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"여백 크기에\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"0에서 100 사이의 숫자를 보내주세요\\n\\n\"\n\"PDF 파일의 내용과 페이지 사이에 유지할 여백 공간의 백분율입니다.\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"여백 크기를 조정하고 싶은 번호를 보내주세요\\n\\n\"\n\"양수는 여백 크기를 줄이고 음수는 마진 크기를 증가시킵니다.\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"자르기\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"수행하려는 자르기 유형을 선택합니다.\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"자르기 값이 잘못되었습니다. 다시 시도하십시오.\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"해독\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"PDF 파일의 암호를 해독하기 위해 암호를 보내주세요.\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"암호화\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"PDF 파일을 암호화하기 위해 암호를 보내주세요.\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"이미지 추출\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"텍스트 추출\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"그레이스케일\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"이미지로 이동\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"미리 보기\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"이름을 바꿀\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"파일 이름에는 다음 문자를 사용할 수 없습니다. 다시 시도하십시오.\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"PDF 파일의 이름을 변경하려는 파일 이름을 보내\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"회전\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"시계 방향으로 PDF 파일을 회전하려는 도를 선택합니다.\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"요인별\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"치수로\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"수평 및 수직 축의 배율 인수를 보내주십시오.\\n\\n\"\n\"예: 2 0.5 - 수평축을 두 배로 늘리고 수직축을 반으로 줄입니다.\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"너비와 높이를 보내주세요\\n\\n\"\n\"예: 150 200 - 너비를 150으로, 높이를 200으로 설정합니다.\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"규모\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"수행하려는 배율 유형을 선택합니다.\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"배율 값이 잘못되었습니다. 다시 시도하십시오.\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"분할\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"분할 범위가 잘못되었습니다. 다시 시도하십시오.\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"보관할 페이지 범위 보내기\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"일반 사용\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"모든 페이지 {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      페이지 8만\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"처음 세 페이지 {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"8페이지 이후의 {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     마지막 페이지만\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"마지막 페이지를 제외한 모든 페이지를 {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"두 번째 마지막 페이지만 {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    지난 두 페이지\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  세 번째 및 두 번째 마지막 페이지\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"고급 사용\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    페이지 {pages} 끝까지\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} 페이지 {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"모든 페이지를 반전 순서로 {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} 페이지 {pages} {page}제외\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  페이지 {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"파일이 너무 커서 다운로드하여 처리할 수 없습니다. 다른 파일로 다시 시도하십시오.\\n\\n\"\n\"이 제한은 Telegram에 의해 시행되며 Telegram에서 변경하지 않는 한 내가 할 수 있는 일은 없습니다\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"파일이 너무 커서 보낼 수 없습니다\\n\\n\"\n\"이 제한은 Telegram에 의해 적용되며 Telegram이 변경하지 않는 한 내가 할 수 있는 일은 없습니다.\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"파일이 이미지가 아니므로 다시 시도하십시오.\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"메시지에 이미지가 없습니다.\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"파일은 PDF 파일이 아니며 다시 시도하십시오.\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"취소된 조치\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"다음은 결과 파일입니다.\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"거르다\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"PDF 파일에 쓸 텍스트를 보내주세요.\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"PDF 파일에 사용할 글꼴을 보내거나 {skip} 눌러 기본 글꼴을 사용하십시오.\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"지원되는 글꼴 목록은 여기를 참조하십시오: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"알 수없는 글꼴, 다시 시도하십시오\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"PDF 파일 만들기\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"워터마크를 추가하려는 PDF 파일 보내기\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"워터마크 PDF 파일 보내기\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"PDF 파일에 워터마크 추가\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"당신은 이미이 웹 페이지를 보냈고 나는 여전히 그것을 변환 중입니다\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"웹 페이지를 PDF 파일로 변환\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"웹 페이지에 연결할 수 없음\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"웹 페이지를 변환하지 못했습니다.\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/ky_KG/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: ky\\n\"\n\"Language-Team: Kyrgyz\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: ky\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Жокко чыгарылды\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Даяр\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Артка\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Бир нерсе туура эмес болуп калды, сиздин файл же команда менен баштоо\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Процессти аягына чыгаруу ишке ашпады\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"PDF Botко кош келиңиз!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Негизги өзгөчөлүктөр:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- PDF файлдарына суу белгисин кысуу, бириктирүү, алдын ала көрүү, атын өзгөртүү, бөлүү жана кошуу\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Текст билдирүүлөрүнөн PDF файлдарын түзүңүз\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- PDF файлдарынан сүрөттөрдү жана текстти алыңыз\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- PDF файлдарын сүрөттөргө айландыруу\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Веб -баракчаларды жана сүрөттөрдү PDF файлдарына айландыруу\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Кол менен жазылган сүрөттөрдү PDF файлдарына кооздоңуз\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Жана дагы ...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"PDF Botту кантип колдонууну көрүү үчүн {command} териңиз\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Тилди орнотуу 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Каналга кошулуу\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"PDF Bot колдоо\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Сиз мага төмөнкүлөрдүн бирин жөнөтүү менен көпчүлүк тапшырмаларды аткара аласыз:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF файлдары\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Сүрөттөр\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Webpage шилтемелери\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Калган тапшырмалар төмөнкү буйруктарды колдонуу менен аткарылышы мүмкүн:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - PDF файлдарын салыштыруу\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - PDF файлдарын бириктирүү\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - бир нече сүрөттөрдү PDF файлдарына айлантуу жана айкалыштыруу\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - текст файлдарынан PDF файлдарын түзүү\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - PDF файлдарына суу белгисин кошуу\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Мага салыштыргыңыз келген PDF файлдарынын бирин мага жөнөтүңүз\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Мен тексттин айырмачылыктарын гана издей алаарымды эске алыңыз\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Мага салыштыргыңыз келген башка PDF файлын мага жөнөтүңүз\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"PDF файлдарыңызды салыштыруу\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"PDF файлдарыңыздын ортосунда текст айырмачылыгы жок\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Бир жерден ката кетти, кайра аракет кылыңыз\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Кнопканын мөөнөтү аяктады, файлыңыздан же командаңыздан баштаңыз\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Натыйжада сүрөт жараксыз болуп саналат, кайра аракет\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Өз пикириңизди англис тилинде жөнөткүлө\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Пикир англис тилинде эмес, кайра аракет кылыңыз\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Сиздин пикир үчүн рахмат, Мен аны иштеп чыгуучуга жөнөттүм\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Сиздин файлыңыз мен үчүн өтө чоң, жүктөп алуу жана иштетүү үчүн\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Бул Telegram Botтун чектөөсү экенин эске алыңыз жана Telegram бул чекти өзгөртмөйүнчө, мен эч нерсе кыла албайм\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Файлды иштетүү\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Сиз аткара турган тапшырманы тандаңыз\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Кооздоо\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"PDFке\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Акыркы файлды жоготуу\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Сиз жасалгалгыңар келген сүрөттөрдү жөнөтүү же PDF файлына айлантуу\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Белгилей кетчү нерсе , сүрөттөрдү сиз жиберген тартипте сулуу болуп, конвертацияланат\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Сен мага ушул убакка чейин бул сүрөттөрдү жөнөттүм:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Эгер мага бардык сүрөттөрдү жиберген болсо, төмөндөн тапшырманы тандап, же мага сүрөттөрдү жөнөтүп улантуу\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Сен мага жөнөткөн бардык сүрөттөрдү алып салдың\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} алынып салынган\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Сен мага эч кандай сүрөт жөнөткөн жок\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Сен мага бир эле сүрөттү жибердиң\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Сүрөттөрдү PDF файлына айлантуу жана сулуулоо\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Сүрөттөрдү PDF файлына айлантуу\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Тилиңизди тандаңыз\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Сиздин тилиңиз {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Мага бириктирүүнү жактырган PDF файлдарын жөнөтүңүз\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Файлдар сиз мага жөнөткөн тартипте бириктирилерин эске алыңыз\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Сиз мага ушул убакка чейин бул PDF файлдарын жибердиңиз:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Эгерде сиз мага PDF файлдарын бириктиргиңиз келген же жөнөтө бергиңиз келген бардык PDF файлдарын жөнөтсөңүз {done} баскычын басыңыз\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Сиз мага жөнөткөн бардык PDF файлдарын алып салдыңыз\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} биригүү үчүн алынып салынды\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Сиз мага PDF файлдарын жөнөткөн жоксуз\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Сиз мага бир гана PDF файлын жөнөттүңүз\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"PDF файлдарыңызды бириктирүү\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Рахмат айт\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Кофе\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Сыра\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Тамак\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"PDF Botту кантип колдоону каалаарыңызды тандаңыз\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"PDF Botко рахмат айтыңыз жана анын иштешине жардам бериңиз\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Бир нерсе туура эмес болуп калды, кайра аракет\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Колдооңуз үчүн рахмат!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"PDF Bot которууга жардам бериңиз\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Сиздин PDF файлы шифрленген, адегенде шифрланган, андан кийин кайра аракет\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Сиздин PDF файлыңыз шифрленген эмес\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Туура эмес сырсөз, сураныч, кайра аракет\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Сиздин PDF файлыңыз шифрленген, мен чече албайм\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"PDF файлыңыздан сүрөттөр табылган жок\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"PDF файлыңыздан текст табылган жок\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Бул файл жараксыз болгондуктан, PDF файлдарыңызды бириктире алган жокмун: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Сиздин PDF файлыңызда текст катмары бар\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Сиздин PDF файлыңыз жараксыз\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Кысуу\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"File көлөмү кыскарган {percent}, тартып {old_size} из {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Пайыз менен\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Маржа өлчөмүнө чейин\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Мага 0 менен 100 ортосундагы номерди жөнөтүү\\n\\n\"\n\"Бул сиздин PDF файлыңыздагы мазмун менен беттин ортосундагы мазмунду сактоо үчүн маржалык мейкиндиктин пайызы\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Маржа өлчөмүн жөнгө салгыңар келген номерди жөнөткүлө\\n\\n\"\n\"Оң сандар маржа өлчөмүн төмөндөтөт жана терс сандар аны көбөйтөт\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Кесүү\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Сиз аткаргыңар келген өсүмдүк түрүн тандаңыз\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Өсүмдүк баалуулуктары жараксыз, кайра аракет\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Шифрин чечүү\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"PDF файлыңызды чечүү үчүн мага сырсөздү жөнөтүңүз\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Шифрлөө\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"PDF файлыңызды шифрлөө үчүн мага сырсөздү жөнөтүңүз\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Сүрөттөрдү чыгаруу\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Текстти чыгаруу\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Грэйскаль\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Сүрөттөргө\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Алдын ала көрүү\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Өзгөртүү\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Файл аттары төмөнкү символдордун эч бирин камтый албайт, кайра аракет кылыңыз:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Мага PDF файлыңыздын атын өзгөрткүңүз келген файлдын атын жөнөтүңүз\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Айлантуу\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"PDF файлыңызды саат жебеси боюнча бурууну каалаган даражаларды тандаңыз\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Фактор боюнча\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Өлчөмгө чейин\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Мисал\\n\\n\"\n\"горизонталдуу жана вертикалдык балталар үчүн масштабдоо факторлорун мага жөнөтүү: 2 0.5 - бул горизонталдуу огу эки эсе көбөйтөт жана вертикалдык огу эки эсе азайтат\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Мага туурасын жана бийиктигин жөнөтүү\\n\\n\"\n\"Мисал: 150 200 - бул туурасын 150 жана бийиктигин 200 чейин орнотот\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Өлчөм\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Аткарууну каалаган шкала түрүн тандаңыз\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Масштабдагы баалуулуктар жараксыз, кайра аракет кылгыла\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Ажыратуу\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"бөлүнгөн диапазону жараксыз, сураныч, кайра аракет\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Мага сактоону жактырган барактардын катарын мага жөнөтүңүз\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Жалпы колдонуу\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      бардык баракчалар\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      бет 8 гана\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    биринчи үч барак\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     8 -беттен баштап\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     акыркы барак гана\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    акыркы баракчадан башка бардык барактар\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     экинчи акыркы бет гана\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    акыркы эки барак\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  үчүнчү жана экинчи акыркы барактар\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Өркүндөтүлгөн колдонуу\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    бет {pages} жана аягына чейин\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} барактар {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   бардык барактар тескери тартипте\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} барак {pages} башка {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  барактар {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Сиздин файл жүктөп алуу жана иштетүү үчүн мен үчүн өтө чоң, сураныч, башка файл менен кайра аракет\\n\\n\"\n\"Белгилей кетчү нерсе, бул лимит Телеграмма тарабынан аткарылат жана Телеграмма өзгөртпөсө, мен эч нерсе кыла албайм\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Файл мен силерге жөнөтүү үчүн өтө чоң\\n\\n\"\n\"Белгилей кетчү нерсе, бул лимит Телеграмма менен аткарылат жана Телеграмма өзгөртпөсө, мен эч нерсе кыла албайм\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Сиздин файл сүрөт эмес, сураныч, кайра аракет\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Кабарыңыздан эч кандай сүрөт табылган жок\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Сиздин файл PDF файлы эмес, кайра аракет кылыңыз\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Аракет жокко чыгарылды\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Мына сиздин жыйынтык файлыңыз\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Өтүү\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Мага PDF файлыңызга жазгыңыз келген текстти жөнөтүңүз\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Мага PDF файлы үчүн колдоно турган шрифтти жөнөтүңүз же демейки шрифтти колдонуу үчүн {skip}\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Колдоого алынган ариптердин тизмесин бул жерден караңыз: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Белгисиз арип, кайра аракет кылыңыз\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"PDF файлыңызды түзүү\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Мага суу белгисин кошкуңуз келген PDF файлын жөнөтүңүз\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Мага суу белгиси PDF файлын жөнөтүңүз\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"PDF белгисиңизге суу белгисин кошуу\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Сен мага буга чейин бул веб-барак жөнөттүм жана мен дагы эле аны конвертациялап жатам\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Веб-баракчаңызды PDF файлына айлантуу\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Веб-баракчаңызга жете албай калдыңыз\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Веб-баракчаңызды конвертациялоо ишке ашпады\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/ms_MY/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: ms\\n\"\n\"Language-Team: Malay\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: ms\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Batal\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Fail telah Selesai\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Kembali\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Sesuatu telah berlaku, mulakan semula dengan fail atau arahan anda\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Gagal melengkapkan proses\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Selamat Datang ke PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Ciri-ciri utama:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Mampatkan, gabung, pratonton, namakan semula, pisah dan tambah tera air ke fail PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Cipta fail PDF daripada mesej teks\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Ekstrak imej dan teks dari fail PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Tukar fail PDF ke dalam imej\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Tukar laman web dan imej ke dalam fail PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Imej nota tulisan tangan beautifi ke dalam fail PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Dan banyak lagi...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Taipkan {command} untuk melihat cara menggunakan Bot PDF\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Set bahasa 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Sertai Saluran\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Sokong PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Anda boleh melaksanakan kebanyakan tugas dengan menghantar saya salah satu daripada berikut:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- Fail PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Imej\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Pautan laman web\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Tugas lain boleh dilakukan menggunakan perintah berikut:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - bandingkan fail PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - gabungkan fail PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - menukar dan menggabungkan pelbagai imej ke dalam fail PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - cipta fail PDF daripada mesej teks\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - tambah tera air ke fail PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Hantarkan kepada saya salah satu fail PDF yang anda ingin bandingkan\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Ambil perhatian bahawa saya hanya boleh mencari perbezaan teks\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Hantar saya fail PDF lain yang anda ingin bandingkan\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Membandingkan fail PDF anda\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Tiada perbezaan teks antara fail PDF anda\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Ada sesuatu yang tak kena, sila cuba lagi\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Butang telah tamat tempoh, mulakan semula dengan fail atau arahan anda\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Imej yang dihasilkan tidak sah, cuba lagi\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Hantarkan maklum balas anda kepada saya dalam bahasa Inggeris\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Maklum balas tidak ditulis dalam Bahasa Inggeris, sila cuba lagi\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Terima kasih atas maklum balas anda, saya telah mengemukakannya kepada pembangun saya\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Fail anda terlalu besar bagi saya untuk memuat turun dan memproses\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Ambil perhatian bahawa ini adalah batasan Bot Telegram dan tiada apa yang boleh saya lakukan melainkan Telegram mengubah had ini\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Memproses fail anda\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Pilih tugas yang anda ingin laksanakan\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Cantikkan\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Kepada PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Alih keluar fail terakhir\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Hantarkan saya imej yang anda ingin cantikkan atau tukar menjadi fail PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Ambil perhatian bahawa imej akan dicantikkan dan ditukar mengikut urutan yang anda hantar kepada saya\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Anda telah menghantar imej ini kepada saya setakat ini:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Pilih tugas dari bawah jika anda telah menghantar semua imej kepada saya, atau terus menghantar imej kepada saya\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Anda telah mengalih keluar semua imej yang anda hantar kepada saya\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} telah dikeluarkan\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Anda belum menghantar sebarang imej kepada saya\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Anda hanya menghantar satu imej kepada saya\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Mencantikkan dan menukar imej anda menjadi fail PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Menukar imej anda kepada fail PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Pilih bahasa anda\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Bahasa anda telah disetkan ke {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Hantar fail PDF yang anda ingin gabungkan\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Ambil perhatian bahawa fail akan dicantumkan mengikut urutan yang anda hantar kepada saya\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Anda telah menghantar fail PDF ini kepada saya setakat ini:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Tekan {done} jika anda telah menghantar saya semua fail PDF yang anda ingin gabungkan atau terus menghantar fail PDF kepada saya\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Anda telah mengalih keluar semua fail PDF yang telah anda hantar kepada saya\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} telah dialih keluar untuk penggabungan\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Anda belum menghantar saya sebarang fail PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Anda hanya menghantar saya satu fail PDF\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Menggabungkan fail PDF anda\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Ucapkan terima kasih\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Kopi\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Bir\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Makan\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Pilih bagaimana cara anda mahu menyokong PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Katakan terima kasih kepada PDF Bot dan membantu memastikan ia berjalan\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Ada yang tidak kena, cuba lagi\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Terima kasih atas sokongan anda!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Bantu menterjemah Bot PDF\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Fail PDF anda disulitkan, nyahsulit terlebih dahulu kemudian cuba lagi\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Fail PDF anda tidak disulitkan\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Kata laluan tidak betul, sila cuba lagi\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Fail PDF anda disulitkan dengan kaedah yang saya tidak boleh nyahsulitkan\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Tiada imej ditemui dalam fail PDF anda\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Tiada teks ditemui dalam fail PDF anda\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Saya tidak dapat menggabungkan fail PDF anda kerana fail ini tidak sah: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Fail PDF anda telah mempunyai lapisan teks\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Fail PDF anda tidak sah\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Mampat\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Saiz fail dikurangkan sebanyak {percent}, dari {old_size} ke {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Mengikut peratusan\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Kepada saiz margin\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Hantarkan nombor antara 0 dan 100\\n\\n\"\n\"Ini ialah peratusan ruang margin untuk mengekalkan antara kandungan dalam fail PDF anda dan halaman\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Hantarkan nombor yang anda ingin laraskan saiz margin\\n\\n\"\n\"Nombor positif akan mengurangkan saiz margin dan nombor negatif akan meningkatkannya\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Pangkas\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Pilih jenis tanaman yang ingin anda laksanakan\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Nilai pangkas tidak sah, cuba lagi\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Menyahsulit\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Hantar kata laluan untuk menyahsulitkan fail PDF anda\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Sulit\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Hantar kata laluan untuk menyulitkan fail PDF anda\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Ekstrak imej\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Mengekstrak teks\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Skala Kelabu\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Kepada imej\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Pra-tonton\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Menamakan semula\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Nama fail tidak boleh mengandungi sebarang aksara berikut, sila cuba lagi:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Hantar nama fail yang anda ingin namakan semula fail PDF anda\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Putar\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Pilih darjah yang anda ingin putar fail PDF anda mengikut arah jam\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Mengikut faktor\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Ke dimensi\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Hantarkan saya faktor penskalaan untuk paksi mendatar dan menegak\\n\\n\"\n\"Contoh: 2 0.5 - ini akan menggandakan paksi mendatar dan separuh paksi menegak\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Hantarkan saya lebar dan ketinggian\\n\\n\"\n\"Contoh: 150 200 - ini akan menetapkan lebar hingga 150 dan tinggi hingga 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Skala\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Pilih jenis skala yang ingin anda laksanakan\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Nilai skala tidak sah, cuba lagi\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Pisahkan\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Julat perpecahan tidak sah, sila cuba lagi\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Hantar saya pelbagai halaman yang anda ingin simpan\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Penggunaan am\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      semua halaman\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      halaman 8 sahaja\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    tiga muka surat pertama\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     dari halaman 8 dan seterusnya\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     halaman terakhir sahaja\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    semua halaman kecuali halaman terakhir\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     halaman kedua terakhir sahaja\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    dua halaman terakhir\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  halaman ketiga dan kedua\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Penggunaan lanjutan\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    halaman {pages} dan ke akhir\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} muka {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   semua halaman dalam tertib terbalik\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} {pages} kecuali {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  muka {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Fail anda terlalu besar untuk saya muat turun dan proses, sila cuba lagi dengan fail lain\\n\\n\"\n\"Perhatikan bahawa had ini dikuatkuasakan oleh Telegram dan tiada apa yang boleh saya lakukan melainkan Telegram mengubahnya\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Fail terlalu besar untuk saya hantar kepada anda\\n\\n\"\n\"Perhatikan bahawa had ini dikuatkuasakan oleh Telegram dan tiada apa yang boleh saya lakukan melainkan Telegram mengubahnya\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Fail anda bukan imej, sila cuba lagi\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Tiada imej ditemui dalam mesej anda\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Fail anda bukan fail PDF, sila cuba lagi\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Tindakan dibatalkan\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Berikut adalah fail keputusan anda\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Langkau\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Hantar saya teks yang anda ingin tulis ke dalam fail PDF anda\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Hantar saya fon yang anda ingin gunakan untuk fail PDF atau tekan {skip} untuk menggunakan fon lalai\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Lihat di sini untuk senarai fon yang disokong: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Unknown font, please try again\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Mencipta fail PDF anda\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Hantar saya fail PDF yang anda ingin tambah tera air\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Hantar saya fail PDF tera air\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Menambah tera air ke fail PDF anda\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Anda telah menghantar halaman web ini kepada saya dan saya masih menukarnya\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Menukar halaman web anda kepada fail PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Tidak dapat mencapai laman web anda\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Gagal menukar laman web anda\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/nl_NL/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: nl\\n\"\n\"Language-Team: Dutch\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: nl\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Annuleren\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Gereed\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Vorige\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Er is iets misgegaan, begin opnieuw met je bestand of commando\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Kan het proces niet voltooien\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Welkom bij PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Belangrijkste kenmerken:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Comprimeren, samenvoegen, bekijken, hernoemen, splitsen en watermerk toevoegen aan PDF-bestanden\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- PDF-bestanden maken op tekstberichten\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Afbeeldingen en tekst uit PDF-bestanden extraheren\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- PDF-bestanden converteren naar afbeeldingen\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Converteer webpagina's en afbeeldingen naar PDF-bestanden\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Verfraai handgeschreven notities afbeeldingen in PDF-bestanden\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- En meer...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Typ {command} om te zien hoe u PDF Bot gebruikt\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Taal instellen 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Abonneer op het kanaal\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"PDF Bot ondersteunen\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"U kunt de meeste taken uitvoeren door mij een van de volgende handelingen te sturen:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF-bestanden\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Afbeeldingen\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Webpagina links\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"De rest van de taken kan worden uitgevoerd met behulp van de volgende opdrachten:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - PDF-bestanden vergelijken\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - PDF-bestanden samenvoegen\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - converteer en combineer meerdere afbeeldingen naar PDF-bestanden\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - PDF-bestanden maken op tekstberichten\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - watermerk toevoegen aan PDF-bestanden\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Stuur me een van de PDF-bestanden die u wilt vergelijken\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Merk op dat ik alleen kan zoeken naar tekstverschillen\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Stuur me het andere PDF bestand voor de vergelijking\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Vergelijk je PDF bestanden\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Er zijn geen tekstverschillen tussen uw PDF-bestanden\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Er is iets misgegaan, probeer het opnieuw.\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"De knop is verlopen, begin opnieuw met uw bestand of opdracht\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"De resulterende afbeelding is ongeldig, probeer het opnieuw\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Stuur mij uw feedback in het Engels\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"De feedback is niet in het Engels, probeer het opnieuw\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Bedankt voor je feedback, ik heb het doorgestuurd naar mijn ontwikkelaar\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Uw bestand is te groot voor mij om te downloaden en te verwerken\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Merk op dat dit een Telegram Bot-beperking is en dat ik niets kan doen tenzij Telegram deze limiet wijzigt\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Verwerking van uw dossier\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Selecteer de taak die u wilt uitvoeren\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Verfraaien\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Naar PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Laatste bestand verwijderen\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Stuur me de afbeeldingen die je wilt verfraaien of converteren naar een PDF-bestand\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Merk op dat de afbeeldingen worden verfraaid en geconverteerd in de volgorde die u mij stuurt\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Je hebt me tot nu toe deze afbeeldingen gestuurd:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Selecteer de taak hieronder als je me alle afbeeldingen hebt gestuurd of blijf me de afbeeldingen sturen\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Je hebt alle afbeeldingen die je me hebt gestuurd al verwijderd\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} is verwijderd\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Je hebt me geen afbeeldingen gestuurd\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Je hebt me maar één afbeelding gestuurd\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Verfraaien en converteren van uw afbeeldingen naar een PDF-bestand\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Uw afbeeldingen converteren naar een PDF-bestand\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Uw taal selecteren\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Uw taal is ingesteld op {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Stuur me de PDF-bestanden die u wilt samenvoegen\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Merk op dat de bestanden worden samengevoegd in de volgorde die u mij stuurt\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Je hebt me tot nu toe deze PDF-bestanden gestuurd:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Druk op {done} als u mij alle PDF-bestanden hebt gestuurd die u wilt samenvoegen of blijf me de PDF-bestanden sturen\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Je hebt alle PDF-bestanden die je me hebt gestuurd al verwijderd\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} is verwijderd voor samenvoegen\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"U heeft mij nog geen PDF bestanden gestuurd\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Je hebt me maar één PDF-bestand gestuurd.\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"PDF bestanden aan het samenvoegen\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Zeg bedankt\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Koffie\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Bier\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Maaltijd\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Selecteer hoe u PDF Bot wilt ondersteunen\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Bedank en waardeer PDF Bot en help deze draaiend te houden\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Er is iets misgegaan, probeer het opnieuw\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Bedankt voor je steun!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Help mee met het vertalen van PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Uw PDF-bestand is gecodeerd, decoderen eerst en opnieuw proberen\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Uw PDF bestand is niet versleuteld\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Onjuist wachtwoord, probeer het opnieuw\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Uw PDF-bestand is versleuteld met een methode die ik niet kan decoderen\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Geen afbeeldingen gevonden in uw PDF-bestand\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Geen tekst gevonden in uw PDF-bestand\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Ik kan uw PDF-bestanden niet samenvoegen omdat dit bestand ongeldig is: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Uw PDF-bestand heeft al een tekstlaag\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Uw PDF-bestand is ongeldig\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Comprimeren\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Bestandsgrootte verminderd met {percent}, van {old_size} tot {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Op percentage\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Naar margegrootte\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Stuur me een getal tussen 0 en 100\\n\\n\"\n\"Dit is het percentage margeruimte dat moet worden behouden tussen de inhoud in uw PDF-bestand en de pagina\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Stuur me een getal dat u de margegrootte wilt aanpassen\\n\\n\"\n\"Positieve getallen zullen de margegrootte verkleinen en negatieve getallen zullen deze vergroten\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Bijsnijden\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Selecteer het gewastype dat u wilt uitvoeren\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"De bijsnijdwaarden zijn ongeldig, probeer het opnieuw\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Decodeer\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Stuur me het wachtwoord om uw PDF bestand te decoderen\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Versleutelen\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Stuur mij het wachtwoord om uw PDF bestand te versleutelen\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Afbeeldingen extraheren\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Tekst extraheren\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Grijswaarden\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Naar afbeeldingen\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Voorbeeld\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Hernoemen\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Bestandsnamen mogen geen van de volgende tekens bevatten, probeer het opnieuw:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Stuur me de gewenste bestandsnaam waar u uw PDF bestand naar wil hernoemen\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Draaien\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Selecteer met hoeveel graden u uw PDF-bestand wilt roteren met de klok mee\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Op factor\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Naar dimensie\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Stuur me de schaalfactoren voor de horizontale en verticale as\\n\\n\"\n\"Voorbeeld: 2 0,5 - dit verdubbelt de horizontale as en halveert de verticale as\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Stuur me de breedte en hoogte\\n\\n\"\n\"Voorbeeld: 150 200 - hiermee wordt de breedte ingesteld op 150 en de hoogte op 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Grootte\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Selecteer het schaaltype dat u wilt uitvoeren\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"De schaalwaarden zijn ongeldig, probeer het opnieuw\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Splitsen\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Het gesplitste bereik is ongeldig, probeer het opnieuw\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Stuur me het bereik van de pagina's die u wilt houden\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Algemeen gebruik\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      alle pagina's\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"alleen {range}      pagina 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    eerste drie pagina's\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     vanaf pagina 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"alleen {range}     laatste pagina\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    alle pagina's behalve de laatste pagina\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"alleen {range}     op één na laatste pagina\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    laatste twee pagina's\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  derde en een na laatste pagina\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Geavanceerd gebruik\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    pagina's {pages} en tot het einde\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} pagina's {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   alle pagina's in omgekeerde volgorde\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} pagina's {pages} behalve {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  pagina's {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Uw bestand is te groot voor mij om te downloaden en te verwerken, probeer het opnieuw met een ander bestand\\n\\n\"\n\"Merk op dat deze limiet wordt afgedwongen door Telegram en dat ik niets kan doen, tenzij Telegram deze wijzigt\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Het bestand is te groot voor mij om naar u te sturen\\n\\n\"\n\"Merk op dat deze limiet wordt afgedwongen door Telegram en dat ik niets kan doen tenzij Telegram het wijzigt\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Uw bestand is geen afbeelding, probeer het opnieuw\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Geen afbeelding gevonden in uw bericht\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Uw bestand is geen PDF-bestand, probeer het opnieuw\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Actie geannuleerd\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Hier is het bestand\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Overslaan\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Stuur mij de tekst die u wilt schrijven in uw PDF-bestand\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Stuur me het lettertype dat u wilt gebruiken voor het PDF-bestand of druk op {skip} om het standaardlettertype te gebruiken\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Zie hier voor de lijst met ondersteunde lettertypen: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Onbekend lettertype, probeer het opnieuw\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Uw PDF-bestand maken\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Stuur me het PDF-bestand waaraan u eenn watermerk wilt toevoegen\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Stuur mij het watermerk PDF-bestand\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Watermerk toevoegen aan het PDF bestand\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Je hebt me deze webpagina al gestuurd en ik ben nog steeds bezig met het converteren\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Uw webpagina converteren naar een PDF-bestand\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Kan uw webpagina niet bereiken\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Kan uw webpagina niet converteren\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/no_NO/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: no\\n\"\n\"Language-Team: Norwegian\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: no\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Avbryt\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Gjort\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Tilbake\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Noe gikk galt, start på nytt med filen eller kommandoen\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Kan ikke fullføre prosessen\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Velkommen til PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Viktige funksjoner:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Komprimer, slå sammen, forhåndsvis, gi nytt navn, del og legg til vannmerke i PDF-filer\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Lag PDF-filer fra tekstmeldinger\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Trekk ut bilder og tekst fra PDF-filer\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Konverter PDF-filer til bilder\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Konverter nettsider og bilder til PDF-filer\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Forskjønne håndskrevne notatbilder i PDF-filer\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Og mer...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Skriv inn {command} for å se hvordan du bruker PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Angi språk 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Bli med i kanal\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Støtte PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Du kan utføre de fleste oppgavene ved å sende meg ett av følgende:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF-filer\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Bilder\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Nettside lenker\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Resten av oppgavene kan utføres ved hjelp av følgende kommandoer:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - sammenlign PDF-filer\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - slå sammen PDF-filer\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - konvertere og kombinere flere bilder i PDF-filer\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - opprett PDF-filer fra tekstmeldinger\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - legg til vannmerke i PDF-filer\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Send meg en av PDF-filene du vil sammenligne\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Legg merke til at jeg bare kan se etter tekstforskjeller\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Send meg den andre PDF-filen du vil sammenligne\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Sammenligne PDF-filene dine\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Det er ingen tekstforskjeller mellom PDF-filene dine\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Noe gikk galt, prøv på nytt\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Knappen er utløpt, start på nytt med filen eller kommandoen\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Det resulterende bildet er ugyldig, prøv igjen\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Send meg din tilbakemelding på engelsk\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Tilbakemeldingen er ikke på engelsk, prøv igjen\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Takk for tilbakemeldingen, jeg har videresendt den til utvikleren min\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Filen din er for stor til at jeg kan laste ned og behandle den\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Vær oppmerksom på at dette er en Telegram Bot-begrensning, og det er ingenting jeg kan gjøre med mindre Telegram endrer denne grensen\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Behandle filen\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Velg oppgaven du vil utføre\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Forskjønne\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Til PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Fjern siste fil\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Send meg bildene du vil forskjønne eller konvertere til en PDF-fil\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Vær oppmerksom på at bildene blir forskjønnet og konvertert i den rekkefølgen du sender meg\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Du har sendt meg disse bildene så langt:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Velg oppgaven nedenfor hvis du har sendt meg alle bildene, eller fortsett å sende meg bildene\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Du har allerede fjernet alle bildene du har sendt meg\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} er fjernet\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Du har ikke sendt meg noen bilder\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Du har bare sendt meg ett bilde\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Beautifying og konvertere bildene dine til en PDF-fil\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Konvertere bilder til en PDF-fil\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Velg språk\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Språket er satt til {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Send meg PDF-filene du vil slå sammen\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Legg merke til at filene flettes i den rekkefølgen du sender meg\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Du har sendt meg disse PDF-filene så langt:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Trykk {done} hvis du har sendt meg alle PDF-filene du vil slå sammen, eller fortsett å sende meg PDF-filene\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Du har allerede fjernet alle PDF-filene du har sendt meg\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} er fjernet for fletting\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Du har ikke sendt meg noen PDF-filer\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Du har bare sendt meg én PDF-fil\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Slå sammen PDF-filene dine\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Si takk\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Kaffe\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Øl\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Måltid\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Velg hvordan du vil støtte PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Si takk til PDF Bot og bidra til å holde den i gang\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Noe gikk galt, prøv igjen\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Takk for din støtte!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Hjelp til å oversette PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"PDF-filen din er kryptert, dekrypter den først og prøv deretter på nytt\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"PDF-filen er ikke kryptert\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Feil passord.\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"PDF-filen er kryptert med en metode jeg ikke kan dekryptere\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Ingen bilder funnet i PDF-filen\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Finner ingen tekst i PDF-filen\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Jeg kunne ikke slå sammen PDF-filene siden denne filen er ugyldig: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"PDF-filen har allerede et tekstlag\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"PDF-filen er ugyldig\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Komprimere\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Filstørrelsen reduseres med {percent}, fra {old_size} til {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"I prosent\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Slik angir du margstørrelse\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Send meg et tall mellom 0 og 100\\n\\n\"\n\"Dette er prosentandelen av margavstanden som skal beholdes mellom innholdet i PDF-filen og siden\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Send meg et tall som du vil justere margstørrelsen\\n\\n\"\n\"Positive tall vil redusere marginstørrelsen og negative tall vil øke den\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Beskjære\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Velg avlingstypen du vil utføre\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Beskjæringsverdiene er ugyldige, prøv igjen\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Dekryptere\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Send meg passordet for å dekryptere PDF-filen\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Kryptere\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Send meg passordet for å kryptere PDF-filen\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Pakk ut bilder\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Trekke ut tekst\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Gråtoner\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Til bilder\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Førehandsvisning\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Endre namn\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Filnavn kan ikke inneholde noen av følgende tegn, prøv på nytt:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Send meg filnavnet du vil gi nytt navn til PDF-filen til\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Rotere\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Velg gradene du vil rotere PDF-filen med klokken\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Etter faktor\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Til dimensjon\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Send meg skaleringsfaktorene for de horisontale og vertikale aksene\\n\\n\"\n\"Eksempel: 2 0,5 - dette vil doble den horisontale aksen og halvere den vertikale aksen\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Send meg bredden og høyden\\n\\n\"\n\"Eksempel: 150 200 - dette vil sette bredden til 150 og høyden til 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Skala\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Velg skalatypen du vil utføre\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Skalaverdiene er ugyldige, prøv på nytt\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Delt\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Delingsområdet er ugyldig, prøv igjen\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Send meg utvalget av sider du vil beholde\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Generell bruk\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      alle sider\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"bare {range}      side 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    tre første sidene\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     fra side 8 og fremover\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     bare siste siden\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    alle sider unntatt den siste siden\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     nest siste siden\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    to siste sidene\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  tredje og nest siste siden\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Avansert bruk\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    sider {pages} og til slutten\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} sider {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   alle sider i omvendt rekkefølge\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} sider {pages} unntatt {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  sider {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Filen din er for stor til at jeg kan laste ned og behandle, prøv igjen med en annen fil\\n\\n\"\n\"Merk at denne grensen håndheves av Telegram, og det er ingenting jeg kan gjøre med mindre Telegram endrer den\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Filen er for stor til at jeg kan sende den til deg\\n\\n\"\n\"Merk at denne grensen håndheves av Telegram, og det er ingenting jeg kan gjøre med mindre Telegram endrer den\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Filen er ikke et bilde.\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Finner ikke noe bilde i meldingen\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Filen er ikke en PDF-fil.\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Handling avbrutt\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Her er resultatfilen\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Hoppe over\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Send meg teksten du vil skrive inn i PDF-filen\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Send meg skriften du vil bruke for PDF-filen, eller trykk {skip} for å bruke standardskriften\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Se her for listen over skrifter som støttes: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Ukjent skrift.\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Opprette PDF-filen\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Send meg PDF-filen du vil legge til et vannmerke\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Send meg vannmerket PDF-filen\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Legge til vannmerket i PDF-filen\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Du har sendt meg denne nettsiden allerede, og jeg er fortsatt konvertere den\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Konvertere websiden til en PDF-fil\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Kan ikke nå websiden din\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Kunne ikke konvertere websiden\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/om_ET/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: om\\n\"\n\"Language-Team: Oromo\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: om\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/pl_PL/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: pl\\n\"\n\"Language-Team: Polish\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: pl\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Anuluj\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Zrobić\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Wstecz\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Coś poszło nie tak, zacznij od nowa z plikiem lub poleceniem\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Nie można ukończyć procesu\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Witamy w PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Najważniejsze cechy:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Kompresuj, scalaj, przeglądaj, zmieniaj nazwę, dziel i dodawaj znak wodny do plików PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Twórz pliki PDF z wiadomości tekstowych\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Wyodrębnij obrazy i tekst z plików PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Konwertuj pliki PDF na obrazy\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Konwertuj strony internetowe i obrazy do plików PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Upiększaj odręczne obrazy notatek do plików PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- I wiele więcej...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Wpisz {command} , aby zobaczyć, jak korzystać z bota PDF\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Ustaw język 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Dołącz do kanału\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Obsługa bota PDF\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Możesz wykonać większość zadań, wysyłając mi jedną z następujących czynności:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- Pliki PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Obrazy\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Linki do stron internetowych\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Pozostałe zadania można wykonać za pomocą następujących poleceń:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - porównaj pliki PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - scalanie plików PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - konwertuj i łącz wiele obrazów w pliki PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - tworzenie plików PDF z wiadomości tekstowych\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - dodaj znak wodny do plików PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Wyślij mi jeden z plików PDF, które chcesz porównać\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Zauważ, że mogę szukać tylko różnic w tekście\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Wyślij mi inny plik PDF, który chcesz porównać\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Porównywanie plików PDF\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Nie ma różnic tekstowych między plikami PDF\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Coś poszło nie tak, spróbuj ponownie\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Przycisk wygasł, zacznij od nowa z plikiem lub poleceniem\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Wynikowy obraz jest nieprawidłowy, spróbuj ponownie\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Prześlij mi swoją opinię w języku angielskim\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Opinie nie są w języku angielskim, spróbuj ponownie\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Dziękuję za opinię, przesłałem ją do mojego programisty\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Twój plik jest zbyt duży, abym go pobrał i przetworzył\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Zauważ, że jest to ograniczenie Bota Telegrama i nic nie mogę zrobić, chyba że Telegram zmieni ten limit\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Przetwarzanie pliku\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Wybierz zadanie, które chcesz wykonać\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Upiększyć\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Do pliku PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Usuń ostatni plik\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Wyślij mi obrazy, które chcesz upiększyć lub przekonwertować na plik PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Zauważ, że obrazy zostaną upiększone i przekonwertowane w kolejności, w jakiej mi wyślesz\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Do tej pory przysłałeś mi te zdjęcia:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Wybierz zadanie z dołu, jeśli wysłałeś mi wszystkie obrazy, lub nadal wysyłaj mi obrazy\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Wszystkie przesłane przez Ciebie obrazy zostały już usunięte\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} został usunięty\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Nie przysłałeś mi żadnych zdjęć\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Wysłałeś mi tylko jedno zdjęcie\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Upiększanie i konwertowanie obrazów do pliku PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Konwertowanie obrazów na plik PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Wybierz swój język\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Twój język został ustawiony na {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Wyślij mi pliki PDF, które chcesz scalić\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Zauważ, że pliki zostaną scalone w kolejności, w jakiej mi wyślesz\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Do tej pory wysłałeś mi te pliki PDF:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Naciśnij {done} , jeśli wysłałeś mi wszystkie pliki PDF, które chcesz scalić, lub nadal wysyłaj mi pliki PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Usunięto już wszystkie przesłane mi pliki PDF\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} został usunięty w celu scalenia\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Nie wysłałeś mi żadnych plików PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Wysłano mi tylko jeden plik PDF\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Scalanie plików PDF\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Powiedz dziękuję\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Kawa\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Piwo\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Posiłek\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Wybierz sposób obsługi bota PDF\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Załóż podziękowania dla PDF Bot i pomóż utrzymać go w działaniu\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Coś poszło nie tak, spróbuj ponownie\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Dziękujemy za wsparcie!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Pomoc w tłumaczeniu pdf bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Plik PDF jest zaszyfrowany, najpierw go odszyfruj, a następnie spróbuj ponownie\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Plik PDF nie jest zaszyfrowany\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Nieprawidłowe hasło, spróbuj ponownie\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Twój plik PDF jest zaszyfrowany metodą, której nie mogę odszyfrować\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"W pliku PDF nie znaleziono żadnych obrazów\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Brak tekstu w pliku PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Nie mogę scalić plików PDF, ponieważ ten plik jest nieprawidłowy: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Plik PDF ma już warstwę tekstową\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Twój plik PDF jest nieprawidłowy\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Kompresji\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Rozmiar pliku zmniejszony o {percent}, z {old_size} do {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Procentowo\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Do rozmiaru marginesu\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Wyślij mi liczbę z zakresu od 0 do 100\\n\\n\"\n\"Jest to procent marginesu, który należy zachować między zawartością pliku PDF a stroną\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Wyślij mi numer, który chcesz dostosować rozmiar marginesu\\n\\n\"\n\"Liczby dodatnie zmniejszą rozmiar marginesu, a liczby ujemne go zwiększą\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Upraw\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Wybierz typ kadrowania, który chcesz wykonać\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Wartości kadrowania są nieprawidłowe, spróbuj ponownie\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Odszyfrować\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Wyślij mi hasło do odszyfrowania pliku PDF\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Szyfrowania\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Wyślij mi hasło do zaszyfrowania pliku PDF\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Wyodrębnianie obrazów\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Wyodrębnianie tekstu\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Skala szarości\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Do obrazów\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Podgląd\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Zmienić nazwę\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Nazwy plików nie mogą zawierać żadnego z następujących znaków, spróbuj ponownie:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Wyślij mi nazwę pliku, którą chcesz zmienić nazwę pliku PDF na\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Obracać\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Wybierz stopnie, które chcesz obrócić plik PDF zgodnie z ruchem wskazówek zegara\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Według współczynnika\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Do wymiaru\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Wyślij mi współczynniki skalowania dla osi poziomej i pionowej\\n\\n\"\n\"Przykład: 2 0,5 - podwoi oś poziomą i zmniejszy oś pionową o połowę\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Wyślij mi szerokość i wysokość\\n\\n\"\n\"Przykład: 150 200 - spowoduje to ustawienie szerokości na 150 i wysokości na 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Skali\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Wybierz typ skali, którą chcesz wykonać\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Wartości skali są nieprawidłowe, spróbuj ponownie\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Split\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Zakres podziału jest nieprawidłowy, spróbuj ponownie\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Wyślij mi zakres stron, które chcesz zachować\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Ogólne użycie\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      wszystkie strony\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      tylko strona 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    pierwsze trzy strony\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     od strony 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     tylko ostatnia strona\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    wszystkie strony z wyjątkiem ostatniej strony\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     przedostatnia strona\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    dwie ostatnie strony\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  trzecia i przedostatnia strona\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Zaawansowane użytkowanie\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    stron {pages} i do końca\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{pages}stron {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   wszystkich stron w odwróconej kolejności\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} strony {pages} z wyjątkiem {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{pages}stron {range}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Twój plik jest zbyt duży, abym mógł go pobrać i przetworzyć, spróbuj ponownie z innym plikiem\\n\\n\"\n\"Pamiętaj, że ten limit jest egzekwowany przez Telegram i nic nie mogę zrobić, chyba że Telegram go zmieni\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Plik jest zbyt duży, abym mógł go wysłać do Ciebie\\n\\n\"\n\"Pamiętaj, że ten limit jest egzekwowany przez Telegram i nic nie mogę zrobić, chyba że Telegram go zmieni\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Twój plik nie jest obrazem, spróbuj ponownie\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Brak obrazu w wiadomości\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Plik nie jest plikiem PDF, spróbuj ponownie\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Działanie anulowane\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Oto plik wyników\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Pominąć\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Wyślij mi tekst, który chcesz zapisać w pliku PDF\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Wyślij mi czcionkę, której chcesz użyć w pliku PDF, lub naciśnij {skip} , aby użyć czcionki domyślnej\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Zobacz tutaj listę obsługiwanych czcionek: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Nieznana czcionka, spróbuj ponownie\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Tworzenie pliku PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Wyślij mi plik PDF, który chcesz dodać znak wodny\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Wyślij mi plik PDF znaku wodnego\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Dodawanie znaku wodnego do pliku PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Wysłałeś mi już tę stronę i nadal ją konwertuję\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Konwertowanie strony internetowej na plik PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Nie można uzyskać dostępu do strony internetowej\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Konwersja strony internetowej nie powiodła się\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/pt_BR/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: pt\\n\"\n\"Language-Team: Portuguese, Brazilian\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: pt-BR\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Cancelar\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Pronto\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Voltar\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Algo deu errado, comece de novo com seu arquivo ou comando\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Falha ao concluir o processo\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Bem-vindo ao PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Principais características:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Compactar, mesclar, visualizar, renomear, dividir e adicionar marca d'água aos arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Criar arquivos PDF a partir de mensagens de texto\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Extrair imagens e textos de arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Converter arquivos PDF em imagens\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Converter páginas e imagens da Web em arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Embelezar imagens de notas manuscritas em arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- E mais...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Digite {command} para ver como usar o PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Definir Idioma 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Entre no Canal\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Ajude o PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Você pode executar a maioria das tarefas me enviando um dos seguintes:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Imagens\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Links de página da Web\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"O resto das tarefas podem ser executadas usando os seguintes comandos:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - compare arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - mescla arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - converta e combine várias imagens em arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - crie arquivos PDF a partir de mensagens de texto\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - adicionar marca d'água aos arquivos PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Envie-me um dos arquivos PDF que você vai gostar de comparar\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Note que eu só posso procurar por diferenças de texto\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Envie-me o outro arquivo PDF que você gostaria de comparar\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Comparando seus arquivos PDF\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Não há diferenças de texto entre seus arquivos PDF\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Algo deu errado, por favor, tente de novo.\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"O botão expirou, comece de novo com seu arquivo ou comando\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"A imagem resultante é inválida, tente novamente\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Envie-me o seu feedback em Inglês\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"O feedback não está em inglês, tente novamente\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Obrigado pelo seu feedback, eu o encaminhei para o meu desenvolvedor\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Seu arquivo é muito grande para eu baixar e processar\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Note que esta é uma limitação do Telegram Bot e não há nada que eu possa fazer a menos que o Telegram mude esse limite\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Processando seu arquivo\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Selecione a tarefa que você deseja executar\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Embelezar\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Para PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Remover último arquivo\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Envie-me as imagens que você vai gostar de embelezar ou converter em um arquivo PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Note que as imagens serão embelezadas e convertidas na ordem que você me enviar\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Você me enviou estas imagens até agora:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Selecione a tarefa abaixo se você me enviou todas as imagens, ou continue me enviando as imagens\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Você já removeu todas as imagens que me enviou\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} foi removido\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Você não me enviou nenhuma imagem\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Você só me enviou uma imagem\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Embelezar e converter suas imagens em um arquivo PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Convertendo suas imagens em um arquivo PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Selecione seu idioma\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Sua linguagem foi definida para {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Envie-me os arquivos PDF que você vai gostar de mesclar\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Note que os arquivos serão mesclados na ordem que você me enviar\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Você me enviou esses arquivos PDF até agora:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Pressione {done} se você me enviou todos os arquivos PDF que você vai gostar de mesclar ou continuar me enviando os arquivos PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Você já removeu todos os arquivos PDF que você me enviou\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} foi removido para fusão\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Você não me enviou nenhum arquivo PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Você só me enviou um arquivo PDF\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Mesclando seus arquivos PDF\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji}${value}\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Diga obrigado\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Café\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Cerveja\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Refeição\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Selecione como você deseja apoiar o PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Diga obrigado ao PDF Bot e ajude a mantê-lo funcionando\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Algo deu errado, tente novamente\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Obrigado pelo seu apoio!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Ajude a traduzir o PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Seu arquivo PDF está criptografado, descriptografe-o primeiro e tente novamente\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Seu arquivo PDF não está criptografado\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Senha incorreta, por favor, tente novamente\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Seu arquivo PDF é criptografado com um método que não posso descriptografar\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Nenhuma imagem encontrada em seu arquivo PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Nenhum texto encontrado em seu arquivo PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Não foi possível mesclar seus arquivos PDF, pois esse arquivo é inválido: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Seu arquivo PDF já tem uma camada de texto\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Seu arquivo PDF é inválido\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Comprimir\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Tamanho do arquivo reduzido por {percent}, de {old_size} para {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Por percentagem\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Para o tamanho da margem\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Envie-me um número entre 0 e 100\\n\\n\"\n\"Esta é a porcentagem de espaço de margem a ser mantida entre o conteúdo do arquivo PDF e a página\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Envie-me um número que você gostaria de ajustar o tamanho da margem\\n\\n\"\n\"Os números positivos diminuirão o tamanho da margem e os números negativos a aumentarão\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Cortar\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Selecione o tipo de corte que você deseja executar\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Os valores de corte são inválidos, tente novamente\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Descriptografar\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Envie-me a senha para descriptografar seu arquivo PDF\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Criptografar\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Envie-me a senha para criptografar seu arquivo PDF\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Extrair imagens\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Extrair texto\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Escala de cinza\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Para imagens\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Prévia\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Renomear\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Os nomes de arquivo não podem conter nenhum dos seguintes caracteres, tente novamente:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Envie-me o nome do arquivo em que você gostaria de renomear seu arquivo PDF\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Girar\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Selecione em quantos graus que você gostaria de girar seu arquivo PDF no sentido horário\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Por fator\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Para dimensionar\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Envie-me os fatores de escala para os eixos horizontal e vertical\\n\\n\"\n\"Exemplo: 2 0,5 - isso dobrará o eixo horizontal e reduzirá pela metade o eixo vertical\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Envie-me a largura e a altura\\n\\n\"\n\"Exemplo: 150 200 - isso definirá a largura como 150 e a altura como 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Escala\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Selecione o tipo de escala que você deseja executar\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Os valores de escala são inválidos, tente novamente\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Dividir\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"O intervalo dividido é inválido, tente novamente\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Envie-me o intervalo de páginas que você deseja manter\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Uso geral\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      todas as páginas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      página 8 apenas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    três primeiras páginas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     a partir da página 8 em diante\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     última página apenas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    todas as páginas, exceto a última página\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     segunda última página apenas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    últimas duas páginas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  terceira e segunda últimas páginas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Uso avançado\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    páginas {pages} e até o fim\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"páginas {range} {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   todas as páginas em ordem invertida\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"páginas {range} {pages} exceto {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"páginas {range} {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Seu arquivo é muito grande para eu baixar e processar, por favor, tente novamente com um arquivo diferente\\n\\n\"\n\"Note que esse limite é imposto pelo Telegram e não há nada que eu possa fazer a menos que o Telegram o altere\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"O arquivo é muito grande para eu enviar para você\\n\\n\"\n\"Note que esse limite é imposto pelo Telegram e não há nada que eu possa fazer, a menos que o Telegram o altere\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Seu arquivo não é uma imagem, por favor tente novamente\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Nenhuma imagem encontrada em sua mensagem\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Seu arquivo não é um arquivo PDF, por favor tente novamente\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Ação cancelada\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Aqui está o seu arquivo final\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Saltitar\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Envie-me o texto que você deseja escrever em seu arquivo PDF\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Envie-me a fonte que você gostaria de usar para o arquivo PDF ou pressionar {skip} para usar a fonte padrão\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Veja aqui a lista de fontes suportadas: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Fonte desconhecida, por favor tente novamente\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Criando seu arquivo PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Envie-me o arquivo PDF que você gostaria de adicionar uma marca d'água\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Envie-me a marca d'água do arquivo PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Adicionando a marca d'água no seu arquivo PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Você já me enviou esta página da Web e eu ainda estou convertendo-a\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Convertendo sua página da Web em um arquivo PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Não é possível acessar sua página da Web\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Falha ao converter sua página da Web\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/pt_PT/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: pt\\n\"\n\"Language-Team: Portuguese\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: pt-PT\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Cancelar\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Feito\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Voltar\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Algo deu errado, comece de novo com seu arquivo ou comando\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Falha ao concluir o processo\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Bem-vindo ao PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Principais características:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Compactar, mesclar, visualizar, renomear, dividir e adicionar marca d'água aos arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Criar arquivos PDF a partir de mensagens de texto\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Extrair imagens e textos de arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Converter arquivos PDF em imagens\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Converter páginas e imagens da Web em arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Embelezar imagens de notas manuscritas em arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- E mais...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Digite {command} para ver como usar o PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Definir Idioma 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Inscreva-se no Canal\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Suporte ao BOT PDF\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Você pode executar a maioria das tarefas me enviando um dos seguintes:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Imagens\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Links de página da Web\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"O resto das tarefas podem ser executadas usando os seguintes comandos:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - compare arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - mescla arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - converta e combine várias imagens em arquivos PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - crie arquivos PDF a partir de mensagens de texto\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - adicionar marca d'água aos arquivos PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Envie-me um dos arquivos PDF que você vai gostar de comparar\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Note que eu só posso procurar por diferenças de texto\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Envie-me o outro arquivo PDF que você vai gostar de comparar\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Comparando seus arquivos PDF\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Não há diferenças de texto entre seus arquivos PDF\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Algo deu errado, por favor, tente de novo.\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"O botão expirou, comece de novo com seu arquivo ou comando\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"A imagem resultante é inválida, tente novamente\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Envie-me o seu feedback em Inglês\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"O feedback não está em inglês, tente novamente\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Obrigado pelo seu feedback, eu o encaminhei para o meu desenvolvedor\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Seu arquivo é muito grande para eu baixar e processar\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Note que esta é uma limitação do Telegram Bot e não há nada que eu possa fazer a menos que o Telegram mude esse limite\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Processando seu arquivo\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Selecione a tarefa que você gostaria de executar\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Embelezar\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Para PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Remover último arquivo\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Envie-me as imagens que você vai gostar de embelezar ou converter em um arquivo PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Note que as imagens serão embelezadas e convertidas na ordem que você me enviar\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Você me enviou estas imagens até agora:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Selecione a tarefa abaixo se você me enviou todas as imagens, ou continue me enviando as imagens\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Você já removeu todas as imagens que me enviou\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} foi removido\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Você não me enviou nenhuma imagem\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Você só me enviou uma imagem\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Embelezar e converter suas imagens em um arquivo PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Convertendo suas imagens em um arquivo PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Selecione seu idioma\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Sua linguagem foi definida para {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Envie-me os arquivos PDF que você vai gostar de mesclar\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Note que os arquivos serão mesclados na ordem que você me enviar\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Você me enviou esses arquivos PDF até agora:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Pressione {done} se você me enviou todos os arquivos PDF que você vai gostar de mesclar ou continuar me enviando os arquivos PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Você já removeu todos os arquivos PDF que você me enviou\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} foi removido para fusão\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Você não me enviou nenhum arquivo PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Você só me enviou um arquivo PDF\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Mesclando seus arquivos PDF\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji}${value}\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Diga obrigado\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Café\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Cerveja\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Refeição\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Selecione como deseja suportar o PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Diga obrigado ao PDF Bot e ajude a mantê-lo funcionando\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Algo deu errado, tente novamente\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Obrigado pelo apoio!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Ajudar a traduzir PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Seu arquivo PDF está criptografado, descriptografe-o primeiro e tente novamente\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Seu arquivo PDF não está criptografado\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Senha incorreta, por favor, tente novamente\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Seu arquivo PDF é criptografado com um método que não posso descriptografar\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Nenhuma imagem encontrada em seu arquivo PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Nenhum texto encontrado em seu arquivo PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Não foi possível mesclar seus arquivos PDF, pois esse arquivo é inválido: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Seu arquivo PDF já tem uma camada de texto\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Seu arquivo PDF é inválido\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Comprimir\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Tamanho do arquivo reduzido por {percent}, de {old_size} para {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Por percentagem\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Para o tamanho da margem\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Envie-me um número entre 0 e 100\\n\\n\"\n\"Esta é a porcentagem de espaço de margem a ser mantida entre o conteúdo do arquivo PDF e a página\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Envie-me um número que você gostaria de ajustar o tamanho da margem\\n\\n\"\n\"Os números positivos diminuirão o tamanho da margem e os números negativos a aumentarão\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Cultura\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Selecione o tipo de corte que você deseja executar\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Os valores de corte são inválidos, tente novamente\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Descriptografar\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Envie-me a senha para descriptografar seu arquivo PDF\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Criptografar\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Envie-me a senha para criptografar seu arquivo PDF\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Extrair imagens\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Extrair texto\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Escala de cinza\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Para imagens\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Visualizar\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Renomear\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Os nomes de arquivo não podem conter nenhum dos seguintes caracteres, tente novamente:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Envie-me o nome do arquivo que você vai gostar de renomear seu arquivo PDF em\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Girar\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Selecione os graus que você gostaria de girar seu arquivo PDF no sentido horário\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Por fator\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Para dimensionar\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Envie-me os fatores de escala para os eixos horizontal e vertical\\n\\n\"\n\"Exemplo: 2 0,5 - isso dobrará o eixo horizontal e reduzirá pela metade o eixo vertical\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Envie-me a largura e a altura\\n\\n\"\n\"Exemplo: 150 200 - isso definirá a largura como 150 e a altura como 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Escala\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Selecione o tipo de escala que você deseja executar\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Os valores de escala são inválidos, tente novamente\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Dividir\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"O intervalo dividido é inválido, tente novamente\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Envie-me o intervalo de páginas que você vai gostar de manter\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Uso geral\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      todas as páginas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      página 8 apenas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    três primeiras páginas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     a partir da página 8 em diante\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     última página apenas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    todas as páginas, exceto a última página\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     segunda última página apenas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    últimas duas páginas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  terceira e segunda últimas páginas\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Uso avançado\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    páginas {pages} e até o fim\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"páginas {range} {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   todas as páginas em ordem invertida\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"páginas {range} {pages} exceto {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"páginas {range} {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Seu arquivo é muito grande para eu baixar e processar, por favor, tente novamente com um arquivo diferente\\n\\n\"\n\"Note que esse limite é imposto pelo Telegram e não há nada que eu possa fazer a menos que o Telegram o altere\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"O arquivo é muito grande para eu enviar para você\\n\\n\"\n\"Note que esse limite é imposto pelo Telegram e não há nada que eu possa fazer, a menos que o Telegram o altere\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Seu arquivo não é uma imagem, por favor tente novamente\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Nenhuma imagem encontrada em sua mensagem\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Seu arquivo não é um arquivo PDF, por favor tente novamente\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Ação cancelada\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Aqui está seu arquivo de resultado\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Saltitar\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Envie-me o texto que você vai gostar de escrever em seu arquivo PDF\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Envie-me a fonte que você gostaria de usar para o arquivo PDF ou pressionar {skip} para usar a fonte padrão\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Veja aqui a lista de fontes suportadas: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Fonte desconhecida, por favor, tente novamente\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Criando seu arquivo PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Envie-me o arquivo PDF que você vai gostar de adicionar uma marca d'água\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Envie-me o arquivo PDF marca d'água\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Adicionando a marca d'água no seu arquivo PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Você já me enviou esta página da Web e eu ainda estou convertendo-a\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Convertendo sua página da Web em um arquivo PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Não é possível acessar sua página da Web\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Falha ao converter sua página da Web\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/ro_RO/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: ro\\n\"\n\"Language-Team: Romanian\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: ro\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Anulează\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Finalizează\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Inapoi\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Ceva nu a mers bine, începeți cu fișierul sau comanda dvs.\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Nu a reușit să finalizeze procesul\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Bine ati venit la PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Caracteristici cheie:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Comprimați, îmbinați, previzualizați, redenumiți, împărțiți și adăugați filigran în fișiere PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Creați fișiere PDF din mesaje text\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Extrageți imagini și text din fișiere PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Conversia fișierelor PDF în imagini\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Convertiți pagini web și imagini în fișiere PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Înfrumusețează imaginile notelor scrise de mână în fișiere PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Și multe altele...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Tastați {command} pentru a vedea se utilizează PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Setează Limba 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Alăturați-vă canalului\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Suport PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Puteți efectua majoritatea sarcinilor trimițându-mi una dintre următoarele:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- Fișiere PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Imagini\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Link-uri web\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Restul sarcinilor pot fi efectuate utilizând următoarele comenzi:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - comparați fișierele PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - îmbinarea fișierelor PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - convertiți și combinați mai multe imagini în fișiere PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - creați fișiere PDF din mesaje text\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - adăugarea filigranului la fișierele PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Trimite-mi unul dintre fișierele PDF pe care veți dori să le comparați\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Rețineți că pot căuta doar diferențe de text\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Trimite-mi celălalt fișier PDF pe care doriți să-l comparați\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Compararea fișierelor PDF\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Nu există diferențe de text între fișierele PDF\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Ceva nu a mers bine, vă rugăm să încercați din nou\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Butonul a expirat, începeți cu fișierul sau comanda\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Imaginea rezultată este nevalidă, încercați din nou\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Trimite-mi feedback-ul tău în limba engleză\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Feedback-ul nu este în limba engleză, încercați din nou\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Vă mulțumim pentru feedback-ul dvs., l-am transmis la dezvoltatorul meu\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Fișierul este prea mare pentru mine pentru a descărca și procesa\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Rețineți că aceasta este o limitare Telegram Bot și nu e nimic nu pot face cu excepția cazului în Telegram modificări această limită\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Procesarea fișierului\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Selectați activitatea pe care doriți să o efectuați\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Înfrumuseţa\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"În PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Eliminarea ultimului fișier\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Trimite-mi imaginile pe care veți dori să înfrumusețeze sau converti într-un fișier PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Rețineți că imaginile vor fi înfrumusețate și convertite în ordinea în care îmi trimiteți\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Mi-ați trimis aceste imagini până acum:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Selectați sarcina de mai jos dacă mi-ați trimis toate imaginile sau continuați să-mi trimiteți imaginile\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Ați eliminat deja toate imaginile pe care mi le-ați trimis\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} a fost eliminată\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Nu mi-ai trimis nicio imagine\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Mi-ai trimis o singură imagine\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Înfrumusețarea și conversia imaginilor într-un fișier PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Conversia imaginilor într-un fișier PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Selectați limba dvs.\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Limba ta a fost setată la {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Trimiteți-mi fișierele PDF pe care veți dori să le îmbinați\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Rețineți că fișierele vor fi îmbinate în ordinea în care îmi trimiteți\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Mi-ați trimis aceste fișiere PDF până acum:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Apăsați {done} dacă mi-ați trimis toate fișierele PDF pe care veți dori să le îmbinați sau continuați să-mi trimiteți fișierele PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Ați eliminat deja toate fișierele PDF pe care mi le-ați trimis\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} a fost eliminat pentru fuzionarea\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Nu mi-ai trimis niciun fișier PDF\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Mi-ați trimis un singur fișier PDF\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Îmbinarea fișierelor PDF\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Spune Multumesc\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Cafea\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Bere\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Masă\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Selectați modul în care doriți să acceptați PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Spune datorită PDF Bot și de a ajuta la menținerea acestuia rulează\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Ceva nu a mers bine, încercați din nou\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Vă mulțumim pentru sprijin!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Ajutor pentru traducerea PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Fișierul PDF este criptat, decriptați-l mai întâi, apoi încercați din nou\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Fișierul PDF nu este criptat\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Parolă incorectă, vă rugăm să încercați din nou\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Fișierul PDF este criptat cu o metodă pe care nu o pot decripta\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Nu se găsesc imagini în fișierul PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Nu s-a găsit text în fișierul PDF\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Nu am putut îmbina fișierele PDF, deoarece acest fișier nu este valid: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Fișierul PDF are deja un strat text\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Fișierul PDF nu este valid\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Comprima\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Dimensiunea fișierului redusă cu {percent}, de la {old_size} la {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"În procente\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"La dimensiunea marginii\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Trimite-mi un număr între 0 și 100\\n\\n\"\n\"Acesta este procentul de spațiu de margine de reținut între conținutul din fișierul PDF și pagina\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Trimite-mi un număr pe care veți dori să ajustați dimensiunea marjei\\n\\n\"\n\"numerele pozitive vor scădea dimensiunea marjei și numerele negative îl vor crește\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Cultură\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Selectați tipul de trunchiere pe care doriți să-l efectuați\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Valorile de trunchiere nu sunt valide, încercați din nou\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Decripta\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Trimite-mi parola pentru a decripta fișierul PDF\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Cripta\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Trimite-mi parola pentru criptarea fișierului PDF\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Extragerea imaginilor\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Extragerea textului\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Tonuri de gri\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Pentru imagini\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Previzualizare\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Redenumiţi\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Numele fișierelor nu pot conține niciunul dintre următoarele caractere, încercați din nou:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Trimiteți-mi numele de fișier în care doriți să redenumiți fișierul PDF\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Roti\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Selectați gradele pe care doriți să le rotiți fișierul PDF în sensul acelor de ceasornic\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"După factor\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Pentru a dimensiona\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Trimiteți-mi factorii de scalare pentru axele orizontale și verticale\\n\\n\"\n\"Exemplu: 2 0,5 - aceasta va dubla axa orizontală și va înjumătăți axa verticală\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Trimite-mi lățimea și înălțimea\\n\\n\"\n\"Exemplu: 150 200 - acest lucru va seta lățimea la 150 și înălțimea la 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Scară\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Selectați tipul de scală pe care doriți să-l efectuați\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Valorile scalei nu sunt valide, încercați din nou\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Split\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Intervalul divizat nu este valid, vă rugăm să încercați din nou\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Trimite-mi gama de pagini pe care vei dori să le păstrezi\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Utilizare generală\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      toate paginile\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      pagina 8 numai\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    primele trei pagini\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     începând cu pagina 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     doar ultima pagină\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    toate paginile, cu excepția ultimei pagini\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     a doua pagină doar\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    ultimele două pagini\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  treia și a doua pagină\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Utilizare complexă\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    pagini {pages} și până la sfârșit\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{pages}pagini {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   toate paginile în ordine inversă\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{pages} pagini {range} , cu excepția {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{pages}pagini {range}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Fișierul este prea mare pentru a fi descărcat și procesat, încercați din nou cu un alt fișier\\n\\n\"\n\"Rețineți că această limită este aplicată de Telegram și nu pot face nimic decât dacă Telegram o schimbă\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Fișierul este prea mare pentru mine pentru a vă trimite\\n\\n\"\n\"Rețineți că această limită este impusă de Telegram și nu pot face nimic dacă Telegram nu o schimbă\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Fișierul nu este o imagine, vă rugăm să încercați din nou\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Nicio imagine nu se găsește în mesaj\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Fișierul nu este un fișier PDF, încercați din nou\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Acțiune revocată\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Aici este fișierul rezultat\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Sări peste\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Trimite-mi textul pe care vrei să-l scrii în fișierul PDF\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Trimiteți-mi fontul pe care veți dori să îl utilizați pentru fișierul PDF sau apăsați {skip} pentru a utiliza fontul implicit\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Vezi aici lista fonturilor acceptate: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Font necunoscut, vă rugăm să încercați din nou\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Crearea fișierului PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Trimiteți-mi fișierul PDF pe care doriți să-l adăugați o inscripționare\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Trimite-mi fișierul PDF de inscripționare\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Adăugarea filigranului în fișierul PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Mi-ați trimis deja această pagină web și încă o convertesc\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Conversia paginii web într-un fișier PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Nu vă puteți accesa pagina web\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Nu a reușit să vă convertească pagina web\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/ru_RU/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: ru\\n\"\n\"Language-Team: Russian\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: ru\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Отмена\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Готово\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Назад\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Что-то пошло не так, начните сначала с файла или команды\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Не удалось завершить процесс\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Добро пожаловать в PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Ключевые возможности:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Сжатие, слияние, предварительный просмотр, переименование, разделение и добавление водяного знака в PDF-файлы\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Создание PDF файлов из текстовых сообщений\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Извлечение изображений и текста из PDF файлов\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Преобразование PDF файлов в изображения\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Преобразование веб-страниц и изображений в PDF-файлы\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Украшение рукописных заметок в PDF-файлы\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- И многое другое...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Введите {command} , чтобы узнать, как использовать PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Установить язык 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Присоединиться к каналу\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Поддержать PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Вы можете выполнить большинство задач, отправив мне один из следующих вариантов:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF файлы\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Изображения\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Ссылки на веб-страницы\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Остальные задачи можно выполнить с помощью следующих команд:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - сравнить PDF файлы\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - объединение PDF файлов\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - конвертируйте и объединяйте несколько изображений в PDF-файлы\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - создание PDF файлов из текстовых сообщений\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - добавление водяного знака в PDF-файлы\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Пришлите мне один из PDF-файлов, которые вы хотите сравнить\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Обратите внимание, что я могу искать только текстовые различия\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Пришлите мне другой PDF-файл, который вам нужно сравнить\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Сравнение ваших PDF-файлов\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Нет различий в тексте между файлами PDF\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Что-то пошло не так, пожалуйста, попробуйте еще раз\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Срок действия кнопки истек, начните с файла или команды заново\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Полученное изображение недопустимо, повторите попытку\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Пришлите мне свой отзыв на английском языке\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Отзыв не на английском языке, попробуйте еще раз\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Спасибо за ваш отзыв, я переслал его своему разработчику\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Ваш файл слишком велик для загрузки и обработки\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Обратите внимание, что это ограничение Telegram Bot, и я ничего не могу сделать, если Telegram не изменит это ограничение.\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Обработка файла\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Выберите задачу, которую вам нужно выполнить\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Улучшить\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"В PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Удаление последнего файла\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Пришлите мне изображения, которые вы захотите украсить или преобразовать в PDF-файл\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Обратите внимание, что изображения будут украшены и преобразованы в том порядке, в котором вы мне присылаете\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Вы прислали мне эти изображения до сих пор:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Выберите задачу снизу, если вы отправили мне все изображения, или продолжайте присылать мне изображения\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Вы уже удалили все изображения, которые вы мне прислали\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} удален\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Вы не прислали мне никаких изображений\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Вы прислали мне только одно изображение\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Украшение и преобразование изображений в PDF-файл\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Преобразование изображений в PDF-файл\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Выберите свой язык\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Ваш язык настроен на {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Пришлите мне PDF-файлы, которые вы хотите объединить\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Обратите внимание, что файлы будут объединены в том порядке, в котором вы мне их отправите\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Вы отправили мне эти PDF-файлы до сих пор:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Нажмите {done}, если вы отправили мне все PDF-файлы, которые вы хотите объединить, или продолжите присылать мне PDF-файлы\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Вы уже удалили все PDF-файлы, которые вы мне прислали\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} был удален для объединения\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Вы не присылали мне никаких PDF-файлов\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Вы прислали мне только один PDF-файл\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Слияние ваших PDF-файлов\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Скажите «Спасибо«\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Кофе\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Пиво\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Еда\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Выберите, каким образом вы хотите поддержать PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Скажите спасибо PDF Bot и помогите поддерживать его в рабочем состоянии\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Что-то пошло не так, попробуйте еще раз\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Спасибо за вашу поддержку!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Помочь перевести PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Ваш PDF-файл зашифрован, сначала расшифруйте его, а затем повторите попытку\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Ваш PDF-файл не зашифрован\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Неправильный пароль, пожалуйста, повторите попытку\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Ваш PDF-файл зашифрован с помощью метода, который я не могу расшифровать\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"В PDF-файле не найдено изображений\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"В PDF-файле не найдено текста\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Я не смог объединить ваши PDF-файлы, так как этот файл недействителен: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Ваш PDF-файл уже имеет текстовый слой\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Ваш PDF-файл недействителен\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Сжать\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Размер файла уменьшен на {percent}, с {old_size} до {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"В процентах\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"До размера полей\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Пришлите мне число от 0 до 100\\n\\n\"\n\"Это процент пространства полей между содержимым в вашем PDF-файле и страницей\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Пришлите мне число, которое вы хотели бы скорректировать размер поля\\n\\n\"\n\"Положительные числа уменьшат размер маржи, а отрицательные числа увеличат его\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Обрезать\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Выберите тип обрезки, который вы хотите выполнить\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Недопустимые значения обрезки, повторите попытку\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Расшифровать\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Пришлите мне пароль для расшифровки вашего PDF-файла\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Зашифровать\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Пришлите мне пароль для шифрования PDF-файла\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Извлечение изображений\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Извлечение текста\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Оттенки серого\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"К изображениям\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Предпросмотр\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Переименовать\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Названия файлов не могут содержать перечисленные ниже символы. Повторите попытку:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Отправьте мне имя файла, в который вы хотите переименовать файл PDF\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Повернуть\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Выберите градусы, на которые вы хотели бы повернуть PDF-файл по часовой стрелке\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"По коэффициенту\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"К размеру\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Пришлите мне коэффициенты масштабирования для горизонтальной и вертикальной осей\\n\\n\"\n\"Пример: 2 0,5 - это удвоит горизонтальную ось и вдвое уменьшит вертикальную ось\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Пришлите мне ширину и высоту\\n\\n\"\n\"Пример: 150 200 - это установит ширину на 150 и высоту на 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Масштаб\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Выберите тип шкалы, который вы хотите выполнить\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Недопустимые значения шкалы, повторите попытку\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Разделить\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Недопустимый диапазон разделения, повторите попытку\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Пришлите мне диапазон страниц, которые вы хотели бы сохранить\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Общее использование\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      всех страниц\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      только страница 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    первые три страницы\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     начиная со страницы 8 и далее\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     только последняя страница\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    все, кроме последней страницы\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     только вторая последняя страница\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    последние две страницы\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  третья и вторая последние страницы\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Продвинутое использование\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    страниц {pages} и до конца\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{pages}{range} страниц\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   всех страниц в обратном порядке\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} страницы {pages} , кроме {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{pages}{range}  страниц\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Ваш файл слишком велик, чтобы я мог скачать и обработать, пожалуйста, попробуйте еще раз с другим файлом\\n\\n\"\n\"Обратите внимание, что это ограничение применяется Telegram, и я ничего не могу сделать, пока Telegram не изменит его\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Файл слишком велик для меня, чтобы отправить вам\\n\\n\"\n\"Обратите внимание, что это ограничение применяется Telegram, и я ничего не могу сделать, если Telegram не изменит его.\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Ваш файл не является изображением, попробуйте еще раз\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"В сообщении не найдено изображения\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Ваш файл не является PDF-файлом, повторите попытку\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Действие отменено\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Вот ваш итоговый файл\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Скип\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Отправьте мне текст, который вы бы хотели записать в ваш PDF-файл\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Пришлите мне шрифт, который вы хотите использовать для PDF-файла, или нажмите {skip} , чтобы использовать шрифт по умолчанию\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Список поддерживаемых шрифтов см. здесь: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Неизвестный шрифт, попробуйте еще раз\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Создание вашего PDF-файла\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Отправьте мне PDF-файл, на который вам нужно добавить водяной знак\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Пришлите мне водяной знак файла PDF\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Добавление водяного знака в ваш PDF-файл\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Вы уже отправили мне эту веб-страницу, и я все еще конвертирую ее\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Преобразование веб-страницы в PDF-файл\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Не удается попасть на веб-страницу\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Не удалось преобразовать веб-страницу\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/si_LK/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:58\\n\"\n\"Last-Translator: \\n\"\n\"Language: si\\n\"\n\"Language-Team: Sinhala\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: si-LK\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"අවලංගු කරන්න\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"අවසන් කරන්න\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"ආපසු\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"PDF බොට් වෙත සාදරයෙන් පිළිගනිමු!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"මූලික ලක්ෂණ:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"පීඩීඑෆ් ලිපි ගොනු වලට සම්පීඩනය කරන්න, ඒකාබද්ධ කරන්න, පෙරදසුන් කරන්න, නැවත නම් කරන්න, බෙදන්න සහ ජල සලකුණු එකතු කරන්න\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- කෙටි පණිවුඩ වලින් PDF ගොනු සාදන්න\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- PDF ලිපිගොනු වලින් පින්තූර සහ පෙළ උපුටා ගන්න\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- PDF ගොනු පින්තූර බවට පරිවර්තනය කරන්න\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- වෙබ් පිටු සහ පින්තූර පීඩීඑෆ් ගොනු බවට පරිවර්තනය කරන්න\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- අතින් ලියන ලද සටහන් රූප PDF ගොනු වලට අලංකාර කරන්න\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- සහ තවත්...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"PDF බොට් භාවිතා කරන්නේ කෙසේදැයි බැලීමට {command} ටයිප් කරන්න\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"භාෂාව සකසන්න 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"නාලිකාවට සම්බන්ධ වන්න\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"PDF බොට් සදහා උදව් කරන්න\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"පහත සඳහන් ඒවායින් එකක් මට යැවීමෙන් ඔබට බොහෝ කාර්යයන් ඉටු කළ හැකිය:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF ගොනු\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- වෙබ් පිටු සම්බන්ධක\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"පහත දැක්වෙන විධානයන් භාවිතා කිරීමෙන් ඉතිරි කාර්යයන් ඉටු කළ හැකිය:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - PDF ගොනු සංසන්දනය කරන්න\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - PDF ගොනු ඒකාබද්ධ කරන්න\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - කෙටි පණිවුඩ වලින් PDF ගොනු සාදන්න\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - පීඩීඑෆ් ගොනු වලට ජල සලකුණක් එක් කරන්න\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"ඔබ සංසන්දනය කිරීමට කැමති PDF ලිපිගොනු වලින් එකක් මට එවන්න\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"මට සෙවිය හැක්කේ පෙළ වෙනස්කම් පමණක් බව සලකන්න\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"ඔබ සංසන්දනය කිරීමට කැමති අනෙක් PDF ගොනුව මට එවන්න\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"ඔබගේ PDF ගොනු සංසන්දනය කරමින් පවතී\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"ඔබේ PDF ලිපිගොනු අතර පෙළ වෙනස්කම් නොමැත\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"යම් දෙයක් වැරදිණි, කරුණාකර නැවත උත්සාහ කරන්න\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"මෙම ෆීඩ්බැක් එක ඉංග්‍රීසි නොවන බව හදුනා ගෙන ඇත, නැවත උත්සාහ කරන්න\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"ඔබේ ගොනුව මට බාගත කර සැකසීමට නොහැකි තරම් විශාල ය\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"මෙය ටෙලිග්‍රාම් බොට් සීමාවක් බව සලකන්න, ටෙලිග්‍රාම් මෙම සීමාව වෙනස් නොකළහොත් මට කළ හැකි කිසිවක් නැත\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"ඔබ ඉටු කිරීමට කැමති කාර්යය තෝරන්න\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"අලංකාර කරන්න\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"PDF වෙත\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"භාෂාව තෝරන්න\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"{language}ලෙස සකසා ඇත\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"ඔබ ඒකාබද්ධ කිරීමට කැමති PDF ගොනු මට එවන්න\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"ඔබ මට එවන අනුපිළිවෙල අනුව ලිපි ගොනු ඒකාබද්ධ වන බව සලකන්න\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"ඔබ ඒකාබද්ධ කිරීමට කැමති සියලුම පීඩීඑෆ් ලිපිගොනු මට එව්වා නම් හෝ පීඩීඑෆ් ගොනු මට දිගටම එවුවහොත් {done} ඔබන්න\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} ඒකාබද්ධ කිරීම සඳහා ඉවත් කර ඇත\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"ඔබ මට PDF ලිපිගොනු කිසිවක් එවා නැත\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"ඔබ මට එවා ඇත්තේ එක් PDF ගොනුවක් පමණි\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"ඔබගේ PDF ගොනු එකතු කරමින් පවතී\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"ස්තුතියි කියන්න\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"කෝපි\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"බියර්\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"කෑම\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"ඔබ PDF බොට්ට සඳහා සහය දැක්විය හැකි ආකාරය තෝරන්න\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"PDF බොට්ට ස්තූතියි කියමින් එය දිගටම පවත්වා ගැනීමට උදව් කරන්න\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"ඔබගේ සහයෝගයට ස්තූතියි!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"PDF බොට් පරිවර්තනය කිරීමට උදව් කරන්න\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"ඔබගේ PDF ගොනුව ආකේතනය කර නොමැත\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"මට විකේතනය කළ නොහැකි ක්‍රමයක් සමඟ ඔබේ PDF ගොනුව සංකේතනය කර ඇත\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"ඔබගේ PDF ගොනුවට දැනටමත් අකුරු ස්ථරයක් ඇත\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"හකුලන්න\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"{old_size} සිට {new_size}දක්වා {percent}කින් අඩු වේ\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"අනවශ්‍ය කොටස් කපා දමන්න\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"විකේතනය\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"ඔබගේ PDF ගොනුව විකේතනය කිරීමට අවශ්‍ය මුරපදය මට එවන්න\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"ආකේතනය\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"ඔබගේ PDF ගොනුව ආකේතනය කිරීමට මුරපදය එවන්න\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"පෙරදසුන\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"නම වෙනස් කරන්න\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"ඔබගේ PDF ගොනුවේ නාමය වෙනස් කිරීමට ඔබ කැමති ගොනු නාමය මට එවන්න\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"කරකවන්න\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"ඔබේ PDF ගොනුව දක්ෂිණාවර්තව භ්‍රමණය කිරීමට ඔබ කැමති අංශක ප්‍රමාණය තෝරන්න\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"පරිමාණය\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"කොටස් කරන්න\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"ඔබ තබා ගැනීමට කැමති පිටු පරාසය මට එවන්න\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"සාමාන්‍ය භාවිතය\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      සියලුම පිටු\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      පිටුව 8 පමණි\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    පළමු පිටු තුන\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"8 වන පිටුවේ සිට {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     අවසාන පිටුව පමණි\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    අවසාන පිටුව හැර අනෙකුත් සියලුම පිටු\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     අවසාන පිටුව පමණි\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    අවසාන පිටු දෙක\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  තුන්වන සහ දෙවන අවසන් පිටු\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"උසස් භාවිතය\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    පිටු {pages} සහ අවසානය දක්වා\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} පිටු {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"පිටු සියළු පිටු {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} පිටු {pages} හැර {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  පිටු {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"ඔබේ ගොනුව PDF ගොනුවක් නොවේ, කරුණාකර නැවත උත්සාහ කරන්න\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"ක්‍රියාව අවලංගු කරන ලදි\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"මෙන්න ඔබේ සකස් කරන ලද ගොනුව\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"ඔබගේ PDF ගොනුව තුල ලිවීමට ඔබ කැමති වචනය මට එවන්න\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"පීඩීඑෆ් ගොනුව සඳහා ඔබ භාවිතා කිරීමට කැමති අකුරු හෝ මට පෙරනිමි අකුරු භාවිතා කිරීමට {skip}\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"සහාය දක්වන අකුරු ලැයිස්තුව සඳහා මෙතැන බලන්න: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"නොදන්නා අකුරු, කරුණාකර නැවත උත්සාහ කරන්න\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"ඔබේ PDF ගොනුව නිර්මාණය කරමින් පවතී\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"ඔබට වෝටර් මාර්ක් එකක් එක් කිරීමට කැමති PDF ගොනුව මට එවන්න\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"මට වෝටර්මාර්ක් සහිත PDF ගොනුව එවන්න\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"ඔබගේ PDF ගොනුවට වෝටර් මාර්ක් එකක් එක් කරමින් පවතී\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/sr_SP/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: sr\\n\"\n\"Language-Team: Serbian (Cyrillic)\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: sr\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Откажи\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Завршено\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Назад\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Нешто је пошло наопако, почни испочетка са својим досијеом или командом\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Довршавање процеса није успело\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Добродошли у ПДФ Бот!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Кључне карактеристике:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Компримујте, обједините, прегледајте, преименујте, разделите и додајте водени жиг ПДФ фајловима\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Креирање ПДФ фајлова од текстуалних порука\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Издвајање слика и текста из ПДФ фајлова\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Конвертовање ПДФ фајлова у слике\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Конвертовање Веб страница и слика у ПДФ датотеке\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Улепшавање слика написаних руком у ПДФ фајлове\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- И још много тога...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Укуцате {command} да бисте видели како се користи ПДФ Бот\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Постављање језичких 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Придружи се каналу\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Подршка ПДФ Боту\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Већину задатака можете извршити тако што ћете ми послати једну од следећих опција:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- ПДФ фајлови\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Слике\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Линкови Веб страница\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Остали задаци се могу извршити помоћу следећих команди:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - упоредите ПДФ фајлове\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - обједињавање ПДФ фајлова\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - конвертовање и комбиновање више слика у ПДФ фајлове\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - креирање ПДФ фајлова од текстуалних порука\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - додајте водени жиг ПДФ фајловима\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Пошаљите ми један од ПДФ фајлова које ћете хтети да упоредите\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Имајте на науда да могу да тражим само текстуалне разлике\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Пошаљи ми други ПДФ фајл који би волео да упоредиш\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Поређење ПДФ датотека\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Не постоје текстуалне разлике између ВАШИХ ПДФ фајлова\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Нешто је пошло наопако, молим вас покушајте поново\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Дугме је истекло, почните испочетка са датотеком или командом\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Добијена слика је неважећа, покушајте поново\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Пошаљи ми повратне информације на енглеском\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Повратне информације нису на енглеском, покушајте поново\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Хвала вам на повратним информацијама, проследио сам их свом програмеру\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Твој фајл је превелик да га преузмем и обрадим\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Имајте науда да је ово ограничење Телеграм Бота и да не могу ништа да урадим ако Телеграм не промени ово ограничење\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Обрада датотеке\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Изаберите задатак који ћете хтети да извршите\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Улепшавање\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"У ПДФ\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Уклони последњу датотеку\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Пошаљите ми слике које ћете хтети да улепшате или претворите у ПДФ фајл\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Имајте науда ће слике бити улепшане и конвертоване редоследом којим ми шаљете\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"До сада сте ми послали ове слике:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Изабери задатак одоздо ако си ми послао све слике, или настави да ми шаљеш слике\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Већ си уклонио све слике које си ми послао\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} је уклоњен\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Ниси ми послао никакве слике\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Послао си ми само једну слику.\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Улепшавање и конвертовање слика у ПДФ фајл\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Конвертовање слика у ПДФ датотеку\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Изаберите ваш језик\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Ваш језик је подешен на {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Пошаљите ми ПДФ фајлове које ћете хтети да обједините\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Имајте на крају да ће датотеке бити обједињене редоследом којим ми шаљете\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"До сада сте ми послали ове ПДФ фајлове:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Притисните {done} ако сте ми послали све ПДФ фајлове које ћете хтети да обједините или ми стално шаљете ПДФ фајлове\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Већ сте уклонили све ПДФ фајлове које сте ми послали\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} је за обједињавање\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Ниси ми послао ниједан ПДФ фајл\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Послали сте ми само један ПДФ фајл\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Обједињавање ПДФ датотека\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Захвали се\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Кафа\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Пиво\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Оброк\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Изаберите како желите да подржите ПДФ Бота\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Захвалите се ПДФ Боту и помозите му да настави да ради\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Нешто је пошло наопако, покушај поново\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Хвала вам на подршци!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Помогните да се ПДФ Бот преведе\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Ваш ПДФ фајл је шифрован, дешифрујте га прво а затим покушајте поново\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Ваша ПДФ датотека није шифрована\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Нетачна лозинка, покушајте поново\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Ваш ПДФ фајл је шифрован методом који не могу да дешифрујем\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Нема пронађених слика у ПДФ фајлу\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Није пронађен текст у ПДФ фајлу\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Нисам могао да објединим ваше ПДФ датотеке јер је ова датотека неважећа: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Ваш ПДФ фајл већ има слој текста\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Ваша ПДФ датотека је неважећа\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Компримовање\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Величина датотеке смањена за {percent}, са {old_size} на {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"По процентима\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"До величине маргине\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Пошаљите ми број између 0 и 100\\n\\n\"\n\"Ово је проценат простора на маргинама који треба задржати између садржаја у ПДФ фајлу и странице\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Пошаљите ми број који желите да подесите величину маргине\\n\\n\"\n\"Позитивни бројеви ће смањити величину маргине и негативни бројеви ће је повећати\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Изрезивање\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Изаберите тип изрези који желите да извршите\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Вредности изрезивања су неважеће, покушајте поново\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Дешифровање\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Пошаљи ми лозинку за дешифровање твог ПДФ фајла\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Шифровање\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Пошаљи ми лозинку да шифрујем твој ПДФ фајл\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Издвајање слика\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Издвајање текста\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Сиви тонови\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"На слике\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Преглед\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Преименујете\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Имена датотека не могу да садрже ниједан од следећих знакова, покушајте поново:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Пошаљите ми име датотеке у које желите да преименујете свој ПДФ фајл\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Ротирај\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Изаберите степене које ћете хтети да ротирајте ПДФ фајл у смеру казаљке на сату\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"По фактору\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"У димензију\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Пошаљите ми факторе размере за хоризонталне и вертикалне осе\\n\\n\"\n\"Пример: 2 0.5 - ово ће удвостручити хоризонталну осу и преполовити вертикалну осу\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Пошаљи ми ширину и висину\\n\\n\"\n\"Пример: 150 200 - ово ће поставити ширину на 150, а висину на 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Скали\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Изаберите тип размере који ћете хтети да извршите\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Вредности размере су неважеће, покушајте поново\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Поделимо\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Разделни опсег је неважећи, покушајте поново\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Пошаљите ми опсег страница које ћете хтети да задржите\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Општа употреба\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      све странице\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      страница 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    прве три стране\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     од стране 8 па надаље\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     последња страница\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    све странице осим последње странице\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     на другој последњој страни\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    последње две странице\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  и друга последња страна\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Напредна употреба\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    странице {pages} и до краја\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} странице {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   све странице обрнутим редоследом\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} странице {pages} осим {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  странице {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Ваш фајл је превелик да бих га преузео и обрадио, покушајте поново са другом датотеком\\n\\n\"\n\"Имајте науда да овај лимит спроводи Телеграм и да не могу ништа да урадим ако га Телеграм не промени\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Фајл је превелик да бих вам послао\\n\\n\"\n\"Имајте напомете да ово ограничење спроводи Телеграм и да не могу ништа да урадим ако га Телеграм не промени\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Ваша датотека није слика, покушајте поново\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"У поруци није пронађена слика\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Ваш фајл није ПДФ фајл, покушајте поново\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Радња је отказана\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Ово је твоја датотека са резултатима\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Прескочи\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Пошаљите ми текст који ћете хтети да упишете у свој ПДФ фајл\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Пошаљите ми фонт који желите да користите за ПДФ датотеку или притисните тастер {skip} бисте користили подразумевани фонт\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Погледајте овде листу подржаних фонтова: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Непознат фонт, покушајте поново\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Креирање ПДФ фајла\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Пошаљите ми ПДФ фајл који желите да додате водени жиг\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Пошаљи ми ВОДЕНИ ЖИГ ПДФ фајл\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Додавање воденог жига у ваш ПДФ фајл\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Већ си ми послао ову Веб страницу, а ја је још увек конвертујем\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Конвертовање Веб странице у ПДФ датотеку\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Није могуће доћи до Веб странице\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Конвертовање Wеб странице није успело\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/sv_SE/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: sv\\n\"\n\"Language-Team: Swedish\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: sv-SE\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Avbryt\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Gjort\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Tillbaka\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Något gick fel, börja om med din fil eller kommando\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Det gick inte att slutföra processen\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Välkommen till PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Viktiga funktioner:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Komprimera, sammanfoga, förhandsgranska, byta namn på, dela och lägga till vattenstämpel i PDF-filer\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Skapa PDF-filer från textmeddelanden\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Extrahera bilder och text från PDF-filer\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Konvertera PDF-filer till bilder\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Konvertera webbsidor och bilder till PDF-filer\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Försköna handskrivna anteckningsbilder i PDF-filer\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Och mer...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Skriv {command} för att se hur du använder PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Ange språk 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Gå med i kanal\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Stöd PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Du kan utföra de flesta uppgifterna genom att skicka mig något av följande:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF-filer\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Bilder\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Länkar till webbsida\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Resten av aktiviteterna kan utföras med hjälp av följande kommandon:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - jämför PDF-filer\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - slå samman PDF-filer\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - konvertera och kombinera flera bilder till PDF-filer\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - skapa PDF-filer från textmeddelanden\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - lägg till vattenstämpel i PDF-filer\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Skicka mig en av PDF-filerna som du vill jämföra\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Observera att jag bara kan leta efter textskillnader\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Skicka mig den andra PDF-filen som du kommer att gilla att jämföra\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Jämföra dina PDF-filer\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Det finns inga textskillnader mellan dina PDF-filer\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Något gick fel, försök igen.\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Knappen har gått ut, börja om med din fil eller kommando\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Den resulterande bilden är ogiltig, försök igen\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Skicka mig din feedback på engelska\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Återkopplingen är inte på engelska, försök igen\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Tack för din feedback, jag har vidarebefordrat den till min utvecklare\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Din fil är för stor för mig att ladda ner och bearbeta\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Observera att detta är en Telegram Bot-begränsning och det finns inget jag kan göra om inte Telegram ändrar denna gräns\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Bearbeta din fil\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Välj den uppgift som du ska vilja utföra\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Försköna\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Till PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Ta bort den sista filen\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Skicka mig bilderna som du vill försköna eller konvertera till en PDF-fil\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Observera att bilderna kommer att förskönas och konverteras i den ordning du skickar mig\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Du har skickat mig dessa bilder hittills:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Välj uppgiften nedan om du har skickat mig alla bilder, eller fortsätt skicka mig bilderna\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Du har redan tagit bort alla bilder du har skickat till mig\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} har tagits bort\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Du har inte skickat några bilder till mig\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Du har bara skickat mig en bild\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Försköna och konvertera dina bilder till en PDF-fil\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Konvertera dina bilder till en PDF-fil\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Välj språk\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Ditt språk har ställts in på {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Skicka mig PDF-filerna som du vill slå samman\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Observera att filerna kommer att slås samman i den ordning du skickar mig\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Du har skickat mig dessa PDF-filer hittills:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Tryck {done} om du har skickat mig alla PDF-filer som du vill slå samman eller fortsätta skicka mig PDF-filerna\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Du har redan tagit bort alla PDF-filer du har skickat till mig\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} har tagits bort för sammanslagning\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Du har inte skickat mig några PDF-filer\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Du har bara skickat mig en PDF-fil.\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Sammanslagning av dina PDF-filer\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Säg tack\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Kaffe\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Öl\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Måltid\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Välj hur du vill stödja PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Säg tack vare PDF Bot och hjälpa till att hålla den igång\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Något gick fel, försök igen\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Tack för ert stöd!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Hjälp till att översätta PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Din PDF-fil är krypterad, dekryptera den först och försök sedan igen\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Din PDF-fil är inte krypterad\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Felaktigt lösenord, försök igen\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Din PDF-fil är krypterad med en metod som jag inte kan dekryptera\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Inga bilder hittades i din PDF-fil\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Ingen text hittades i din PDF-fil\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Det gick inte att slå samman dina PDF-filer eftersom den här filen är ogiltig: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Din PDF-fil har redan ett textlager\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Din PDF-fil är ogiltig\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Komprimera\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Filstorleken minskade med {percent}, från {old_size} till {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"I procent\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Till marginalstorlek\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Skicka mig ett nummer mellan 0 och 100\\n\\n\"\n\"Det här är procentandelen marginalutrymme som ska behållas mellan innehållet i PDF-filen och sidan\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Skicka mig ett nummer som du vill justera marginalstorleken\\n\\n\"\n\"Positiva tal minskar marginalstorleken och negativa tal ökar den\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Gröda\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Välj den beskärningstyp du vill utföra\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Beskärningsvärdena är ogiltiga, försök igen\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Dekryptera\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Skicka mig lösenordet för att dekryptera din PDF-fil\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Kryptera\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Skicka mig lösenordet för att kryptera din PDF-fil\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Extrahera bilder\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Extrahera text\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Gråskala\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Till bilder\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Förhandsgranska\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Byt namn\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Filnamn får inte innehålla något av följande tecken, försök igen:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Skicka mig filnamnet som du kommer att vilja byta namn på din PDF-fil i\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Rotera\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Välj de grader som du ska vilja rotera din PDF-fil i medsols\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Efter faktor\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Till dimension\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Skicka mig skalningsfaktorerna för de horisontella och vertikala axlarna\\n\\n\"\n\"Exempel: 2 0,5 - detta fördubblar den horisontella axeln och halverar den vertikala axeln\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Skicka mig bredd och höjd\\n\\n\"\n\"Exempel: 150 200 - detta ställer in bredden till 150 och höjden till 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Skala\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Välj den skalningstyp du vill utföra\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Skalvärdena är ogiltiga, försök igen\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Split\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Delningsintervallet är ogiltigt, försök igen\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Skicka mig det sidintervall som du kommer att vilja behålla\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Allmän användning\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      alla sidor\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      sidan 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    tre första sidorna\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     från sidan 8 och framåt\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     enda sista sidan\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    alla sidor utom sista sidan\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     näst sista sidan\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    två sista sidorna\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  tredje och andra sista sidorna\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Avancerad användning\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    sidor {pages} och till slutet\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} sidor {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   alla sidor i omvänd ordning\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} sidor {pages} utom {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  sidor {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Din fil är för stor för att jag ska kunna ladda ner och bearbeta, försök igen med en annan fil\\n\\n\"\n\"Observera att denna gräns upprätthålls av Telegram och det finns inget jag kan göra om inte Telegram ändrar den\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Filen är för stor för att jag ska kunna skicka till dig\\n\\n\"\n\"Observera att denna gräns upprätthålls av Telegram och det finns inget jag kan göra om inte Telegram ändrar det\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Din fil är inte en bild, försök igen\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Ingen bild hittades i ditt meddelande\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Din fil är inte en PDF-fil, försök igen\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Åtgärden avbryts\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Här är ditt resultat fil\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Skippa\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Skicka mig den text som du kommer att vilja skriva in i din PDF-fil\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Skicka mig teckensnittet som du vill använda för PDF-filen eller tryck på {skip} för att använda standardteckensnittet\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Se här för listan över teckensnitt som stöds: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Okänt teckensnitt, försök igen\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Skapa din PDF-fil\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Skicka mig PDF-filen som du kommer att vilja lägga till en vattenstämpel\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Skicka mig den vattenstämpel PDF-fil\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Lägga till vattenstämpeln på din PDF-fil\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Du har redan skickat den här webbsidan till mig och jag konverterar den fortfarande\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Konvertera din webbsida till en PDF-fil\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Det går inte att nå din webbsida\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Det gick inte att konvertera din webbsida\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/ta_IN/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: ta\\n\"\n\"Language-Team: Tamil\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: ta\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"ரத்து\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"முடிந்தது\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"பின் செல்\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"ஏதோ தவறாகிவிட்டது, உங்கள் கோப்பு அல்லது கட்டளையுடன் தொடங்கவும்\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"செயலாக்கத்தை நிறைவுசெய்வது தோல்வியுற்றது\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"PTM பாட் வரவேற்கிறோம்!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"முக்கிய அம்சங்கள்:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- PTM கோப்புகளில் வாட்டர்மார்க் கைஅழுத்தவும், ஒன்றிணைக்கவும், முன்னோட்டம், மறுபெயரிடவும், பிரிக்கவும் மற்றும் சேர்க்கவும்\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- உரை செய்திகளில் இருந்து PPM கோப்புகளை உருவாக்கவும்\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- PTM கோப்புகளில் இருந்து படங்கள் மற்றும் உரை பிரித்தெடுக்கவும்\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- PTM கோப்புகளை படிமங்களாக மாற்றவும்\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- PTM கோப்புகளாக வலைப்பக்கங்கள் மற்றும் படங்களை மாற்றவும்\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- PTM கோப்புகளில் கையால் எழுதப்பட்ட குறிப்புகள் படங்களை அழகுபடுத்தவும்\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- மேலும்...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"PTM போட் ஐ எவ்வாறு பயன்படுத்துவது என்பதைப் பார்க்க {command} தட்டச்சு செய்யவும்\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"மொழி 🌎 அமை\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"சேனலில் சேரவும்\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"PTM போட் ஆதரவு\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"பின்வருவனவற்றில் ஒன்றை எனக்கு அனுப்புவதன் மூலம் பெரும்பாலான பணிகளை நீங்கள் செய்யலாம்:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PTM கோப்புகள்\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- படங்கள்\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- வலைப்பக்க இணைப்புகள்\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"மீதமுள்ள பணிகளை பின்வரும் கட்டளைகளைப் பயன்படுத்தி செய்ய முடியும்:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - PTM கோப்புகளை ஒப்பிடு\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - PTM கோப்புகளை ஒன்றிணைக்கவும்\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - PTM கோப்புகளில் பல படங்களை மாற்றி இணைக்கவும்\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - உரை செய்திகளில் இருந்து PPM கோப்புகளை உருவாக்கவும்\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - PTM கோப்புகளில் வாட்டர்மார்க் சேர்க்கவும்\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"நீங்கள் ஒப்பிட விரும்பும் PPM கோப்புகளில் ஒன்றை எனக்கு அனுப்பவும்\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"உரை வேறுபாடுகளை மட்டுமே என்னால் பார்க்க முடியும் என்பதை நினைவில் கொள்க\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"நீங்கள் ஒப்பிட விரும்பும் மற்ற PPM கோப்பை எனக்கு அனுப்பவும்\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"உங்கள் PTM கோப்புகளை ஒப்பிடுகிறது\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"உங்கள் PTM கோப்புகளுக்கு இடையே உரை வேறுபாடுகள் இல்லை\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"ஏதோ தவறு நடந்தது, தயவுசெய்து மீண்டும் முயற்சிக்கவும்\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"பொத்தான் காலாவதியாகிவிட்டது, உங்கள் கோப்பு அல்லது கட்டளையுடன் தொடங்கவும்\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"இதன் விளைவாக உருவம் தவறானது, மீண்டும் முயற்சிக்கவும்\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"உங்கள் கருத்தை ஆங்கிலத்தில் எனக்கு அனுப்பவும்\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"பின்னூட்டம் ஆங்கிலத்தில் இல்லை, மீண்டும் முயற்சிக்கவும்\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"உங்கள் கருத்துக்கு நன்றி, நான் அதை என் டெவலப்பருக்கு அனுப்பியுள்ளேன்\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"பதிவிறக்க மற்றும் செயலாக்க உங்கள் கோப்பு எனக்கு மிகவும் பெரியது\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"இது ஒரு தந்தி பாட் வரம்பு மற்றும் தந்தி இந்த வரம்பை மாற்றாவிட்டால் என்னால் எதுவும் செய்ய முடியாது என்பதை நினைவில் கொள்க\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"உங்கள் கோப்பை செயலாக்கம்\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"நீங்கள் செய்ய விரும்பும் பணியைத் தேர்ந்தெடுக்கவும்\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"அழகுபடுத்தல்\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"PDF க்கு\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"கடைசி கோப்பை நீக்கு\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"நீங்கள் அழகுபடுத்த அல்லது PTM கோப்பு மாற்ற விரும்பும் படங்களை எனக்கு அனுப்பவும்\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"நீங்கள் எனக்கு அனுப்பும் வரிசையில் படங்கள் அழகுபடுத்தப்பட்டு மாற்றப்படும் என்பதை நினைவில் கொள்க\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"நீங்கள் இதுவரை இந்த படங்களை எனக்கு அனுப்பியுள்ளீர்கள்:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"நீங்கள் எனக்கு அனைத்து படங்களையும் அனுப்பியிருந்தால், அல்லது படங்களை எனக்கு அனுப்பினால் கீழே இருந்து பணியைத் தேர்ந்தெடுக்கவும்\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"நீங்கள் எனக்கு அனுப்பிய அனைத்து படங்களையும் ஏற்கனவே நீக்கிவிட்டீர்கள்\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} அகற்றப்பட்டது\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"நீங்கள் எனக்கு எந்த படங்களையும் அனுப்பவில்லை\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"நீங்கள் எனக்கு ஒரே ஒரு படத்தை மட்டுமே அனுப்பியுள்ளீர்கள்\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"உங்கள் படங்களை அழகுபடுத்துதல் மற்றும் PDF கோப்பாக மாற்றுதல்\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"உங்கள் படங்களை PDF கோப்பாக மாற்றுதல்\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"உங்கள் மொழியைத் தேர்ந்தெடுக்கவும்\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"உங்கள் மொழி {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"நீங்கள் இணைக்க விரும்பும் PPM கோப்புகளை எனக்கு அனுப்பவும்\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"நீங்கள் எனக்கு அனுப்பும் வரிசையில் கோப்புகள் இணைக்கப்படும் என்பதை நினைவில் கொள்க\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"நீங்கள் இதுவரை இந்த PDF கோப்புகளை எனக்கு அனுப்பியுள்ளீர்கள்:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"நீங்கள் இணைக்க விரும்பும் அல்லது PTM கோப்புகளை எனக்கு அனுப்ப விரும்பும் அனைத்து PPM கோப்புகளைஎனக்கு அனுப்பியிருந்தால் {done} அழுத்தவும்\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"நீங்கள் எனக்கு அனுப்பிய அனைத்து PDF கோப்புகளையும் ஏற்கனவே நீக்கியுள்ளீர்கள்\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} இணைப்பதற்கு அகற்றப்பட்டுள்ளது\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"நீங்கள் எனக்கு எந்த PPM கோப்புகளை அனுப்பவில்லை\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"நீங்கள் எனக்கு ஒரு PPM கோப்பை மட்டுமே அனுப்பியுள்ளீர்கள்\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"உங்கள் PPM கோப்புகளை இணைத்தல்\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"நன்றி சொல்லுங்கள்\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"காப்பி\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"வாற்கோதுமைக் கன்\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"மாவு\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"PTM போட் ஐ எவ்வாறு ஆதரிக்க விரும்புகிறீர்கள் என்பதைத் தேர்ந்தெடுக்கவும்\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"PTM பாட் நன்றி சொல்ல மற்றும் அதை இயங்கும் வைக்க உதவ\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"ஏதோ தவறு நடந்தது, மீண்டும் முயற்சிக்கவும்\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"உங்கள் ஆதரவுக்கு நன்றி!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"PTM போட் மொழிபெயர்க்க உதவுங்கள்\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"உங்கள் PDF கோப்பு குறியாக்கம் செய்யப்பட்டுள்ளது, முதலில் அதை மறைகுறியாக்கவும், பின்னர் மீண்டும் முயற்சிக்கவும்\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"உங்கள் PPM கோப்பு குறியாக்கம் செய்யப்படவில்லை\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"தவறான கடவுச்சொல், தயவுசெய்து மீண்டும் முயற்சிக்கவும்\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"உங்கள் PPM கோப்பு குறியாக்கம் செய்யப்பட்டது, நான் மறைகுறிநீக்க முடியாது என்று ஒரு முறை\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"உங்கள் PDF கோப்பில் படங்கள் எதுவும் காணப்படவில்லை\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"உங்கள் PDF கோப்பில் எந்த உரையும் காணப்படவில்லை\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"இந்த கோப்பு செல்லுபடியாகாததால் உங்கள் PDF கோப்புகளை என்னால் இணைக்க முடியவில்லை: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"உங்கள் PPM கோப்பு ஏற்கனவே உரை அடுக்கு உள்ளது\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"உங்கள் PDF கோப்பு செல்லுபடியாகாது\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"நெருங்கி அழுத்து\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"கோப்பு அளவு {percent}மூலம் குறைக்கப்பட்டது, {old_size} இருந்து {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"சதவீதம் வாரியாக\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"விளிம்பு அளவிற்கு\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"0 முதல் 100\\n\\n\"\n\"இடையே ஒரு எண்ணை எனக்கு அனுப்பவும் இது உங்கள் PDF கோப்பில் உள்ள உள்ளடக்கத்திற்கும் பக்கத்திற்கும் இடையில் தக்க வைத்துக் கொள்ள வேண்டிய விளிம்பு இடத்தின் சதவீதம்\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"நீங்கள் விளிம்பு அளவை சரிசெய்ய விரும்பும் ஒரு எண்ணை எனக்கு அனுப்புங்கள்\\n\\n\"\n\"நேர்மறை எண்கள் விளிம்பு அளவைக் குறைக்கும் மற்றும் எதிர்மறை எண்கள் அதை அதிகரிக்கும்\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"சாட்டைக்கோல்\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"நீங்கள் செய்ய விரும்பும் பயிர் வகையைத் தேர்ந்தெடுக்கவும்\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"பயிர் மதிப்புகள் செல்லாதவை, மீண்டும் முயற்சிக்கவும்\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"டிக்ரிப்ட் செய்\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"உங்கள் PPM கோப்பை மறைகுறிநீக்க கடவுச்சொல்லை எனக்கு அனுப்பவும்\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"என்கிரிப்ட் செய்ய\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"உங்கள் PPM கோப்பை குறியாக்க கடவுச்சொல்லை எனக்கு அனுப்பவும்\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"படங்களைப் பிரித்தெடுக்கவும்\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"உரையை பிரித்தெடுக்கவும்\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"கிரேஸ்கேல்\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"படங்களுக்கு\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"முன்னோட்டம்\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"பெயர் மாற்று\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"கோப்பு பெயர்களில் பின்வரும் எழுத்துக்குறிகள் எதுவும் இருக்க முடியாது, தயவுசெய்து மீண்டும் முயற்சிக்கவும்:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"உங்கள் PTM கோப்பை மறுபெயரிட விரும்பும் கோப்பு பெயரை எனக்கு அனுப்பவும்\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"சுழற்று\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"உங்கள் PP1 கோப்பை கடிகாரதிசையில் சுழற்ற விரும்பும் டிகிரியைத் தேர்ந்தெடுக்கவும்\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"காரணி அடிப்படையில்\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"பரிமாணத்திற்கு\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"கிடைமட்ட மற்றும் செங்குத்து அச்சுகளுக்கான அளவிடல் காரணிகளை எனக்கு அனுப்பவும்\\n\\n\"\n\"எடுத்துக்காட்டு: 2 0.5 - இது கிடைமட்ட அச்சை இரட்டிப்பாக்கும் மற்றும் செங்குத்து அச்சை பாதியாகக் குறைக்கும்\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"அகலம் மற்றும் உயரத்தை எனக்கு அனுப்பவும்\\n\\n\"\n\"எடுத்துக்காட்டு: 150 200 - இது அகலத்தை 150 ஆகவும் உயரத்தை 200 ஆகவும் அமைக்கும்\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"பெரிதாக்கு\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"நீங்கள் செய்ய விரும்பும் அளவுகோல் வகையைத் தேர்ந்தெடுக்கவும்\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"அளவுகோல் மதிப்புகள் செல்லுபடியாகவில்லை, மீண்டும் முயற்சிக்கவும்\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"பிரி\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"பிளவு வரம்பு தவறானது, தயவுசெய்து மீண்டும் முயற்சிக்கவும்\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"நீங்கள் வைத்திருக்க விரும்பும் பக்கங்களின் வரம்பை எனக்கு அனுப்பவும்\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"பொதுவான பயன்பாடு\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      அனைத்து பக்கங்களிலும்\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      பக்கம் 8 மட்டும்\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    முதல் மூன்று பக்கங்கள்\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     பக்கம் 8 முதல்\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     கடைசி பக்கம் மட்டும்\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"கடைசி பக்கத்தைத் தவிர மற்ற அனைத்து பக்கங்களையும் {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     இரண்டாவது கடைசி பக்கம் மட்டும்\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"கடைசி இரண்டு பக்கங்களை {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  மூன்றாவது மற்றும் இரண்டாவது கடைசி பக்கங்கள்\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"மேம்பட்ட பயன்பாடு\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    பக்கங்கள் {pages} மற்றும் இறுதி வரை\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} பக்கங்கள் {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   அனைத்து பக்கங்களையும் தலைகீழ் வரிசையில்\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{page}தவிர {range} பக்கங்கள் {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  பக்கங்கள் {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"உங்கள் கோப்பு நான் பதிவிறக்கம் செய்து செயலாக்க முடியாத அளவுக்கு பெரியது, தயவுசெய்து வேறு கோப்புடன் மீண்டும் முயற்சிக்கவும்\\n\\n\"\n\"இந்த வரம்பு டெலிகிராம் மூலம் செயல்படுத்தப்படுகிறது என்பதை நினைவில் கொள்க, டெலிகிராம் அதை மாற்றாவிட்டால் என்னால் எதுவும் செய்ய முடியாது\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"இந்த கோப்பு எனக்கு அனுப்ப முடியாத அளவுக்கு மிகப் பெரியதாக உள்ளது\\n\\n\"\n\"இந்த வரம்பு டெலிகிராமால் செயல்படுத்தப்படுகிறது என்பதையும், டெலிகிராம் அதை மாற்றாவிட்டால் என்னால் எதுவும் செய்ய முடியாது என்பதையும் நினைவில் கொள்க\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"உங்கள் கோப்பு ஒரு பிம்பம் அல்ல, தயவுசெய்து மீண்டும் முயற்சிக்கவும்\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"உங்கள் செய்தியில் எந்த படமும் காணப்படவில்லை\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"உங்கள் கோப்பு PPM கோப்பு அல்ல, தயவுசெய்து மீண்டும் முயற்சிக்கவும்\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"நடவடிக்கை ரத்து\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"இங்கே உங்கள் விளைவாக கோப்பு உள்ளது\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"குதி\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"உங்கள் PTM கோப்பில் எழுத விரும்பும் உரையை எனக்கு அனுப்பவும்\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"PTM கோப்பிற்கு நீங்கள் பயன்படுத்த விரும்பும் எழுத்துருவை எனக்கு அனுப்பவும் அல்லது இயல்புநிலை எழுத்துருவை பயன்படுத்த {skip} அழுத்தவும்\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"ஆதரிக்கப்படும் எழுத்துருக்களின் பட்டியலுக்கு இங்கே பார்க்கவும்: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"தெரியாத எழுத்துரு, மீண்டும் முயற்சிக்கவும்\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"உங்கள் PPM கோப்பை உருவாக்குதல்\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"நீங்கள் ஒரு வாட்டர்மார்க் சேர்க்க விரும்பும் PPM கோப்பை எனக்கு அனுப்பவும்\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"வாட்டர்மார்க் PPM கோப்பை எனக்கு அனுப்பு\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"உங்கள் PTM கோப்பில் வாட்டர்மார்க் சேர்க்கிறது\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"நீங்கள் ஏற்கனவே இந்த வலைப்பக்கத்தை எனக்கு அனுப்பியுள்ளீர்கள், நான் இன்னும் அதை மாற்றுகிறேன்\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"உங்கள் வலைப்பக்கத்தை PDF கோப்பாக மாற்றுதல்\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"உங்கள் வலைப்பக்கத்தை அடைய இயலவில்லை\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"உங்கள் வலைப்பக்கத்தை மாற்றுவதில் தோல்வியுற்றது\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/tr_TR/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: tr\\n\"\n\"Language-Team: Turkish\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: tr\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"İptal\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Bitti\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Geri\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Bir şeyler ters gitti, dosyanızla veya komutunuzla baştan başlayın\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"İşlem tamamlanamadı\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"PDF Bot a hoş geldiniz!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Temel özellikler:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- PDF dosyalarını sıkıştırın, birleştirin, önizleyin, yeniden adlandırın, bölün ve filigran ekleyin\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Metin mesajlarından PDF dosyaları oluşturun\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- PDF dosyalarından resimleri ve metinleri ayıklayın\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- PDF dosyalarını resimlere dönüştürün\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Web sayfalarını ve resimleri PDF dosyalarına dönüştürün\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- El yazısı not resimlerini PDF dosyası olarak güzelleştirin\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Ve daha fazlası...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"PDF Bot'un nasıl kullanılacağını görmek için {command} yazın\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Dili ayarla 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Kanala Katıl\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"PDF Bot'u Destekle\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Bana aşağıdakilerden birini göndererek görevlerin çoğunu gerçekleştirebilirsiniz:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF dosyaları\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Resimler\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Web sayfası bağlantıları\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Görevlerin geri kalanı aşağıdaki komutlar kullanılarak gerçekleştirilebilir:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - PDF dosyalarını karşılaştırma\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - PDF dosyalarını birleştirme\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - birden fazla resimi PDF dosyalarına dönüştürme ve birleştirme\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - metin mesajlarından PDF dosyaları oluşturma\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - PDF dosyalarına filigran ekleme\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Karşılaştırmak istediğiniz PDF dosyalarından birini gönderin\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Yalnızca metin farklılıklarını arayabileceğimi unutmayın\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Karşılaştırmak istediğiniz diğer PDF dosyasını bana gönderin\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"PDF dosyalarınızı karşılaştırma\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"PDF dosyalarınız arasında metin farkı yok\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Bir şeyler ters gitti, lütfen tekrar deneyin\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Düğmenin süresi doldu, dosyanızla veya komutunuzla baştan başlayın\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Ortaya çıkan görüntü geçersiz, tekrar deneyin\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Geri bildiriminizi bana İngilizce olarak gönderin\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Geri bildiriminiz İngilizce değil, tekrar deneyin\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Geri bildiriminiz için teşekkür ederim, geliştiricime ilettim\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Dosyanız benim indirip işleyemeyeceğim kadar büyük\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Bunun bir Telegram Bot sınırlaması olduğunu ve Telegram bu sınırı değiştirmediği sürece yapabileceğim hiçbir şey olmadığını unutmayın\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Dosyanızı işleme\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Gerçekleştirmek istediğiniz eylemleri seçin\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Güzelleştirme\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"PDF'ye\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Son dosyayı kaldır\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Güzelleştirmek veya PDF dosyasına dönüştürmek istediğiniz resimleri bana gönderin\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Görüntülerin bana gönderdiğiniz sırayla güzelleştirileceğini ve dönüştürüleceğini unutmayın\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Bana şu ana kadar şu görüntüleri gönderdin:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Tüm görüntüleri bana gönderdiyseniz aşağıdaki görevi seçin veya resimleri göndermeye devam edin\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Bana gönderdiğiniz tüm resimleri zaten kaldırdınız\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} kaldırıldı\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Bana hiç resim göndermedin\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Bana sadece bir resim gönderdin\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Görüntülerinizi güzelleştirme ve PDF dosyasına dönüştürme\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Görüntülerinizi PDF dosyasına dönüştürme\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Dilinizi seçin\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Diliniz {language} olarak ayarlandı\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Birleştirmeyi istediğiniz PDF dosyalarını bana gönderin\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Dosyaların bana gönderdiğiniz sırada birleştirileceğini unutmayın\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Şimdiye kadar bana şu PDF dosyalarını gönderdiniz:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Bana birleştirmek istediğiniz tüm PDF dosyalarını gönderdiyseniz veya PDF dosyalarını göndermeye devam ettiyseniz {done} basın\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Bana gönderdiğiniz tüm PDF dosyalarını zaten kaldırdınız\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} birleştirmek için kaldırıldı\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Bana hiç PDF dosyası göndermedin\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Bana sadece bir PDF dosyası gönderdin\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"PDF dosyalarınızı birleştirme\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Teşekkür et\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Kahve\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Bira\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Öğün\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"PDF Botu nasıl destekleyeceğinizi seçin\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"PDF Bot'a yardım edin ve çalışmasında yardımcı olun\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Bir sorun oluştu, tekrar deneyin\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Desteğin için teşekkür ederiz!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Uygulamayı çevirmeye yardım edin\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"PDF dosyanız şifrelendi, önce şifresini çözün ve tekrar deneyin\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"PDF dosyanız şifrelenmemiş\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Yanlış şifre, lütfen tekrar deneyin\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"PDF dosyanız şifresini çözemeyeceğim bir yöntemle şifreleniyor\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"PDF dosyanızda resim bulunamadı\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"PDF dosyanızda metin bulunamadı\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Bu dosya geçersiz olduğu için PDF dosyalarınızı birleştiremedim: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"PDF dosyanızın zaten bir metin katmanı var\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"PDF dosyanız geçersiz\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Sıkıştır\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Dosya boyutu {percent} azaltıldı, {old_size} 'den {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Yüzdeye göre\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Kenar boşluğu boyutunu azaltmak için\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Bana 0 ile 100 arasında bir sayı gönder\\n\\n\"\n\"Bu, PDF dosyanızdaki içerik ile sayfa arasında tutulacak kenar boşluğu boşluğunun yüzdesidir.\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Bana kenar boşluğu boyutunu ayarlamak istediğiniz bir sayı gönderin\\n\\n\"\n\"Pozitif sayılar kenar boşluğu boyutunu azaltacak ve negatif sayılar artıracaktır\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Kes\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Gerçekleştirmek istediğiniz kırpma türünü seçin\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Kırpma değerleri geçersiz, yeniden deneyin\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Şifreyi çöz\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"PDF dosyanızın şifresini çözmek için bana şifreyi gönderin\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Şifrele\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"PDF'i şifrelemek için bana şifreyi yolla\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Görüntüleri ayıklayın\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Metin ayıklama\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Gri tonlamalı\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Resimlere git\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Önizleme\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Yeniden Adlandır\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Dosya adları aşağıdaki karakterlerden herhangi birini içeremez, lütfen tekrar deneyin:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"PDF dosyanızı yeniden adlandırmak istediğiniz dosya adını bana gönderin\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Döndür\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Faktöre göre\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Boyuta\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Bana yatay ve dikey eksenler için ölçekleme faktörlerini gönderin\\n\\n\"\n\"Örnek: 2 0.5 - bu yatay ekseni iki katına çıkaracak ve dikey ekseni yarıya indirecektir\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Bana genişlik ve yüksekliği gönder\\n\\n\"\n\"Örnek: 150 200 - bu, genişliği 150'ye ve yüksekliği 200'e ayarlayacaktır.\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Ölçekleme\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Gerçekleştirmek istediğiniz ölçek türünü seçin\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Ölçek değerleri geçersiz, yeniden deneyin\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Böl\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Bölme aralığı geçersiz, lütfen tekrar deneyin\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Bana saklamak istediğiniz sayfaların aralığını gönderin\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Genel kullanım\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"Tüm sayfaları {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"Yalnızca sayfa 8'i {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    ilk üç sayfa\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"Sayfa 8'den itibaren {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"Yalnızca son sayfayı {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"Son sayfa dışındaki tüm sayfaları {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"yalnızca ikinci son sayfayı {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"son iki sayfayı {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"üçüncü ve ikinci son sayfaları {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Gelişmiş kullanım\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"sayfaları {pages} ve sonuna kadar {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} sayfa {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"Tüm sayfaları ters sırada {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{page}dışında {range} sayfa {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  sayfa {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Dosyanız indirip işleyemeyeceğim kadar büyük, lütfen farklı bir dosyayla tekrar deneyin\\n\\n\"\n\"Bu sınırın Telegram tarafından uygulandığını ve Telegram değiştirmedikçe yapabileceğim hiçbir şey olmadığını unutmayın.\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Dosya size göndermem için çok büyük\\n\\n\"\n\"Bu sınırın Telegram tarafından uygulandığını ve Telegram değiştirmediği sürece yapabileceğim hiçbir şey olmadığını unutmayın.\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Dosyanız bir resim değil, lütfen tekrar deneyin\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Mesajınızda resim bulunamadı\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Dosyanız PDF dosyası değil, lütfen yeniden deneyin\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"İşlem iptal edildi\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"İşte sonuç dosyanız\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Atlamak\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"PDF dosyanıza yazmak isteyeceğiniz metni bana gönderin\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"PDF dosyası için kullanmak istediğiniz yazı tipini gönderin veya varsayılan yazı tipini kullanmak için {skip} basın\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Desteklenen yazı tiplerinin listesi için buraya bakın: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Bilinmeyen yazı tipi, lütfen yeniden deneyin\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"PDF dosyanızı oluşturma\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Filigran eklemek isteyeceğiniz PDF dosyasını bana gönderin\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Bana filigran PDF dosyasını gönder\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"PDF dosyanıza filigran ekleme\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Bu web sayfasını bana zaten gönderdiniz ve hala dönüştürüyorum\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Web sayfanızı PDF dosyasına dönüştürme\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Web sayfanıza erişilemiyor\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Web sayfanız dönüştürülemedi\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/uk_UA/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: uk\\n\"\n\"Language-Team: Ukrainian\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: uk\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Скасувати\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Зробити\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Назад\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Щось пішло не так, почніть спочатку зі свого файлу або команди\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Не вдалося завершити процес\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Ласкаво просимо на PDF Бот!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Ключові особливості:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Стискання, об'єднання, попередній перегляд, перейменування, розділення та додавання водяного знака до PDF-файлів\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Створення PDF-файлів з текстових повідомлень\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Вилучення зображень і тексту з PDF-файлів\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Перетворення PDF-файлів на зображення\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Перетворення веб-сторінок і зображень в PDF файли\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Прикрасити рукописні зображення нотаток у PDF-файлах\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- І багато іншого...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Введіть {command} , щоб дізнатися, як використовувати PDF-бот\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Вибрати мову 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Приєднатися до каналу\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Підтримка PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Більшість завдань можна виконати, надіславши одну з наведених нижче дій.\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF-файли\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Зображення\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Посилання на веб-сторінки\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Решту завдань можна виконати за допомогою таких команд:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - порівняння PDF-файлів\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - об'єднати PDF-файли\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - конвертувати та об'єднувати кілька зображень у ФАЙЛИ PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - створення PDF-файлів з текстових повідомлень\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - додати водяний знак до PDF-файлів\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Надішліть мені один із PDF-файлів, які ви хочете порівняти\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Зверніть увагу, що я можу шукати тільки відмінності в тексті\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Надішліть мені інший PDF-файл, який ви хотіли б порівняти\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"Порівняння PDF-файлів\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Між PDF-файлами немає різниці в тексті\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Щось пішло не так, будь ласка, спробуйте ще раз\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Термін дії кнопки закінчився, почніть спочатку з вашого файлу або команди\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Отримане зображення недійсне, повторіть спробу\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Надішліть мені свій відгук англійською мовою\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Зворотній зв'язок не англійською мовою, повторіть спробу\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Дякуємо за ваш відгук, я переслав його своєму розробнику\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Ваш файл занадто великий для мене, щоб завантажити і обробити\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Зверніть увагу, що це обмеження Telegram Bot, і я нічого не можу зробити, якщо Telegram не змінить це обмеження\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Обробка файлу\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Виберіть завдання, яке потрібно виконати\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Прикрасити\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"У форматі PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Видалення останнього файлу\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Надішліть мені зображення, які ви хотіли б прикрасити або перетворити в PDF-файл\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Зверніть увагу, що зображення будуть прикрашені і перетворені в тому порядку, в якому ви надішлете мені\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Ви надіслали мені ці зображення:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Виберіть завдання знизу, якщо ви надіслали мені всі зображення, або продовжуйте надсилати мені зображення\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Ви вже видалили всі надіслані мені зображення\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} видалено\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Ви не надіслали мені жодних зображень\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Ви надіслали мені лише одне зображення\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Прикрашання та перетворення зображень на PDF-файл\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Перетворення зображень на PDF-файл\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Виберіть мову\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Для вашої мови встановлено значення {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Надіслати мені PDF-файли, які потрібно об'єднати\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Зауважте, що файли буде об'єднано в тому порядку, в який ви надішлете мені\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Ви надіслали мені ці PDF-файли до цих пір:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Натисніть {done} , якщо ви надіслали мені всі PDF-файли, які ви хочете об'єднати, або продовжуйте надсилати мені PDF-файли\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Ви вже видалили всі PDF-файли, які ви мені надіслали\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} видалено для об'єднання\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Ви не надіслали мені жодних PDF-файлів\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Ви надіслали мені лише один PDF-файл\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Об'єміщення PDF-файлів\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Скажи спасибі\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Кава\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Пиво\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Їжа\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Виберіть спосіб підтримки PDF-бота\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Скажімо, завдяки PDF Bot і допомогти тримати його працює\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Щось пішло не так, спробуйте ще раз\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Дякуємо за підтримку!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Як перекласти PDF-бот\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"PDF-файл зашифровано, спочатку розшифруйте його, а потім повторіть спробу\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Файл PDF не зашифровано\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Неправильний пароль, спробуйте ще раз\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Ваш PDF-файл зашифровано методом, який не вдається розшифрувати\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"У вашому PDF-файлі не знайдено зображень\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"У вашому PDF-файлі не знайдено тексту\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Я не зміг об'єднати ваші PDF-файли, оскільки цей файл недійсний: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Pdf-файл уже має текстовий шар\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Неприпустимий PDF-файл\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Стиснути\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Розмір файлу зменшено {percent}, з {old_size} до {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"У відсотках\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"До розміру поля\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Надішліть мені число від 0 до 100\\n\\n\"\n\"Це відсоток місця між полем, який потрібно зберегти між вмістом у файлі PDF та сторінкою\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Надішліть мені число, яке вам сподобається налаштувати розмір поля\\n\\n\"\n\"Додатні числа зменшать розмір поля, а від'ємні числа збільшать його\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Культур\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Виберіть тип обтинання, який потрібно виконати\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Значення обтинання неприпустимі, спробуйте ще раз\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Розшифрувати\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Надішліть мені пароль для розшифрування pdf-файлу\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Шифрування\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Надішліть мені пароль для шифрування PDF-файлу\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Видобування зображень\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Видобування тексту\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Градації сірого\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"До зображень\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Попередній перегляд\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Перейменувати\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Імена файлів не можуть містити жодного з наведених нижче символів, спробуйте ще раз:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Надішліть мені ім'я файлу, на який потрібно перейменувати файл PDF\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Повернути\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Виберіть ступені, які ви хотіли б повернути PDF-файл за годинниковою стрілкою\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"За фактором\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"До розмірності\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Надішліть мені коефіцієнти масштабування для горизонтальної та вертикальної осей\\n\\n\"\n\"Приклад: 2 0,5 - це подвоїть горизонтальну вісь і вдвічі зменшить вертикальну вісь\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Надішліть мені ширину і висоту\\n\\n\"\n\"Приклад: 150 200 - це встановить ширину на 150 і висоту на 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Масштабу\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Виберіть тип масштабу, який ви хочете виконати\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Значення масштабу недійсні, спробуйте ще раз\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Розділити\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Розділений діапазон недійсний, спробуйте ще раз\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Надішліть мені діапазон сторінок, які ви хотіли б зберегти\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Загальне використання\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      всіх сторінок\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      лише на сторінці 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    перші три сторінки\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     зі сторінки 8 і далі\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     лише останню сторінку\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    сторінок, крім останньої\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     лише другу останню сторінку\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    двох останніх сторінках\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  і другу останні сторінки\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Розширене використання\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    сторінок {pages} і до кінця\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} сторінок {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   всі сторінки у зворотному порядку\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} сторінок {pages} крім {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  сторінок {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Ваш файл завеликий для завантаження та обробки, будь ласка, спробуйте ще раз з іншим файлом\\n\\n\"\n\"Зверніть увагу, що це обмеження застосовується Telegram, і я нічого не можу зробити, якщо Telegram не змінить його\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Файл занадто великий, щоб я міг надіслати вам\\n\\n\"\n\"Зверніть увагу, що це обмеження застосовується Telegram, і я нічого не можу зробити, якщо Telegram не змінить його\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Ваш файл не є зображенням, спробуйте ще раз\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"У повідомленні не знайдено жодного зображення\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Ваш файл не є PDF-файлом, повторіть спробу\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Дію скасовано\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Ось ваш файл результатів\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Пропустити\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Надішліть мені текст, який ви хотіли б записати у файл PDF\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Надішліть мені шрифт, який ви хочете використовувати для PDF-файлу, або натисніть {skip} , щоб використовувати шрифт за замовчуванням\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Список підтримуваних шрифтів: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Невідомий шрифт.\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Створення PDF-файлу\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Надішліть мені PDF-файл, до який потрібно додати водяний знак\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Надіслати мені PDF-файл водяного знака\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Додавання водяного знака до файлу PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Ви вже надіслали мені цю веб-сторінку, і я все ще конвертую її\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Перетворення веб-сторінки на PDF-файл\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Не вдається отримати доступ до веб-сторінки\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Не вдалося перетворити веб-сторінку\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/uz_UZ/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: uz\\n\"\n\"Language-Team: Uzbek\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=2; plural=(n > 1);\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: uz\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Bekor qilish\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Bajarildi\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Orqaga\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Biror narsa noto'g'ri bo'ldi, faylingiz yoki buyrug'ingiz bilan qayta boshlang\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Jarayonni yakunlab boʻlmadi\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"PDF Bot -ga xush kelibsiz!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Asosiy xususiyatlar:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- PDF -fayllarga suv belgisini siqish, birlashtirish, oldindan ko'rish, nomini o'zgartirish, ajratish va qo'shish\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Matnli xabarlardan PDF -fayllarni yarating\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- PDF -fayllardan rasm va matnni chiqarib oling\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- PDF -fayllarni rasmga aylantirish\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Veb -sahifalar va rasmlarni PDF -fayllarga aylantirish\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- PDF -fayllarga qo'lda yozilgan yozuvlarni chiroyli qiling\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Va yana ...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"PDF Botdan qanday foydalanishni ko'rish uchun {command} bering\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Tilni Tanlang 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Kanalga qo'shilish\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"PDF botni qo'llab-quvvatlash\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Menga quyidagilardan birini yuborib, ko'p vazifalarni bajarishingiz mumkin:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF -fayllar\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Rasmlar\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- veb -sahifalarga havolalar\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Qolgan vazifalarni quyidagi buyruqlar yordamida bajarish mumkin:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - PDF -fayllarni solishtiring\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - PDF -fayllarni birlashtirish\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - bir nechta tasvirlarni PDF-fayllarga aylantiring va birlashtiring\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - matnli xabarlardan PDF -fayllarni yaratish\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - PDF -fayllarga suv belgisini qo'shing\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Menga solishtirmoqchi bo'lgan PDF -fayllardan birini yuboring\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"E'tibor bering, men faqat matn farqlarini izlay olaman\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Siz solishtirishni istagan boshqa PDF faylini menga yuboring\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"PDF-fayllaringizni taqqoslash\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"PDF -fayllaringiz o'rtasida matn farqlari yo'q\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Xatolik yuz berdi, qaytadan urining\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Tugmaning amal qilish muddati tugadi, fayl yoki buyruq bilan ishga tushiring\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Olingan rasm xato, qayta urinib koʻring\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Fikr-mulohazangizni ingliz tilida yuboring\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Fikr ingliz tilida emas, qaytadan urunib ko'ring\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Fikr-mulohazangiz uchun rahmat, men uni ishlab chiqaruvchimga etkazdim\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Faylingiz yuklab olish va qayta ishlashim uchun juda katta\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"E'tibor bering, bu Telegram Bot cheklovidir va agar Telegram bu chegarani o'zgartirmasa, men hech narsa qila olmayman\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Fayl qayta ishlanmoqda\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Bajarmoqchi bo'lgan harakatni tanlang\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Bezash\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"PDF ga\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Oxirgi faylni olib tashlash\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"PDFga aylantirmoqchi bo'lgan rasmlarni menga yuboring\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"E'tibor bering, rasmlar siz menga yuborgan tartibda o'zgartiriladi\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Shu paytgacha menga bu rasmlarni jo'natdingiz:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Agar menga barcha rasmlarni yuborgan bo'lsangiz yoki tasvirlarni yuborishda davom etsangiz, pastdan vazifani tanlang\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Siz menga yuborgan barcha rasmlarni allaqachon olib tashlagansiz\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} olib tashlandi\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Menga hech qanday rasm jo'natmagansiz\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Siz menga faqat bitta rasmni yubordingiz\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Rasmlaringizni PDF fayliga aylantirish va go'zallashtirish\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"PDF-faylga rasmlaringizni aylantirish\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Tilingizni tanlang\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Sizning tilingiz {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Menga birlashtirmoqchi bo'lgan PDF fayllarini yuboring\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"E'tibor bering, fayllar siz yuborgan tartibda birlashtiriladi\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Siz menga shu paytgacha ushbu PDF fayllarni jo'natdingiz:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Agar siz menga PDF -fayllarni birlashtirmoqchi bo'lgan yoki menga yuborishni davom ettiradigan barcha PDF -fayllarni yuborgan bo'lsangiz, {done} -ni bosing\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Siz allaqachon meni yuborgan barcha PDF fayllarni olib tashladingiz\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"Birlashtirish uchun {file_name}\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Siz menga birorta ham PDF fayl yubormadingiz\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Siz menga faqat bitta PDF -fayl yubordingiz\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"PDF fayllarni birlashtirish\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Rahmat ayting\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Qahva\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Pivo\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Ovqatlanish\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"PDF botni qanday qo'llab-quvvatlashingiz mumkinligini tanlang\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"PDF botiga rahmat ayting va uni ishlatishda savom eting\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Biror narsa noto'g'ri bo'ldi, yana urinib ko'ring\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Qo'llab-quvvatlaganingiz uchun rahmat!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"PDF botni tarjima qilishga yordamlashish\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Pdf faylingiz shifrlangan, uni birinchi bo'lib shifrlang, keyin yana urinib ko'ring\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Sizning PDF faylingiz shifrlanmagan\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Maxfiy soʻz notoʻgʻri, iltimos qaytadan urinib koʻring\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Sizning PDF -faylingiz shifrlangan, men hal qila olmaydigan usul\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"PDF faylingizda rasmlar topilmadi\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"PDF faylingizda matn topilmadi\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Pdf fayllaringizni birlashtira olmadim, chunki bu fayl haqiqiy emas: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Sizning PDF faylingizda allaqachon matn qatlami mavjud\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"PDF faylingiz haqiqiy emas\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Hajmini kamaytirish\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Fayl hajmi {percent}, {old_size} dan {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Foiz boʻyicha\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Boʻsh joy\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Menga 0 dan 100 gacha bo'lgan raqamni yuboring\\n\\n\"\n\"Bu sizning PDF faylingizdagi kontent va sahifa o'rtasida saqlash uchun bo'sh joyning foizi\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Menga marjinal o'lchamni sozlashni xohlaydigan raqamni yuboring\\n\\n\"\n\"Ijobiy raqamlar marjinal o'lchamni kamaytiradi va manfiy raqamlar uni oshiradi\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Qirqish\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Bajarmoqchi bo'ladigan hosila turini tanlang\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Mahsul qiymatlari xato, qaytadan urinib koʻring\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Deshifrlash\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"PDF-faylingizni parolini ochish uchun menga parolni yuboring\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Shifrlash\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Faylingizni parol bilan himoyalash uchun parolni yuboring\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Rasmlarni ajratish\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Matnni ajratish\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Kulrang\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Rasmlarga\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Oldindan ko'rish\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Qayta nomlash\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Fayl nomlarida quyidagi belgilar boʻlishi mumkin emas, qaytadan urinib koʻring:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"PDF faylingizni qayta nomlashni xohlagan fayl nomini menga yuboring\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Aylantirish\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"PDF-faylingizni soat yo'nalishi bo'yicha aylantirishni xohlaydigan darajalarni tanlang\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Omil bo'yicha\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"O'lchamga\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Gorizontal va vertikal eksa uchun taranglik omillarini menga yuboring\\n\\n\"\n\"Misol: 2 0.5 - bu gorizontal o'qi ikki barobarga oshiradi va vertikal eksani yarmiga kamaytiradi\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Menga kengligi va balandligini yuboring\\n\\n\"\n\"Misol: 150 200 - bu kengligi 150 ga, balandligi esa 200 ga o'rnatiladi\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Masshtab\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Bajarishni xohlaysiz shkala turini tanlang\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Koʻrsatilgan qiymatlar xato, qaytadan urinib koʻring\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Ajratmoq\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Boʻlinish oraligʻi xato, iltimos qaytadan urinib koʻring\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Menga saqlamoqchi bo'lgan sahifalaringizni yuboring\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Umumiy foydalanish\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      barcha sahifalar\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      sahifa faqat 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    birinchi uchta sahifa\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     8 -sahifadan boshlab\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"Faqat oxirgi sahifa {range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    oxirgi sahifadan tashqari barcha sahifalar\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     soniya oxirgi sahifa\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    oxirgi ikkita sahifa\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  uchinchi va ikkinchi oxirgi sahifalar\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Kengaytirilgan foydalanish\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    sahifa {pages} va oxirigacha\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} sahifalar {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   barcha sahifalar teskari tartibda\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} sahifalar {pages} tashqari {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  sahifalar {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Sizning faylingiz yuklab olish va qayta ishlash uchun juda katta, iltimos boshqa fayl bilan qayta urinib ko'ring\\n\\n\"\n\"E'tibor bering, bu limit Telegram orqali amalga oshiriladi va Telegram uni o'zgartirmasa men hech narsa qila olmayman\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Fayl sizga jo'natish uchun juda katta\\n\\n\"\n\"Bu limit Telegram tomonidan majburiy bo'lganiga e'tibor bering va Telegram uni o'zgartirmasa hech narsa qila olmayman\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Sizning faylingiz rasm emas, iltimos qayta urinib koʻring\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Xabaringizdagi rasm topilmadi\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Sizning faylingiz PDF -fayl emas, qaytadan urining\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Harakat bekor qilindi\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Mana sizning faylingiz natijasi\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Oʻtish\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"PDF-faylingizga yozmoqchi bo'lgan matnni menga yuboring\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Menga PDF -fayl uchun kerakli shriftni yuboring yoki standart shriftdan foydalanish uchun {skip}\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Qo'llab -quvvatlanadigan shriftlar ro'yxati uchun bu erga qarang: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Noma'lum shrift, qaytadan urining\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"PDF faylingizni yaratish\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Watermark qo`shish uchun istagan PDF faylingizni yuboring\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Menga watermark PDF fayl yuboring\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Sizning PDF faylingizga Watermark qo`yilmoqda\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Siz allaqachon menga bu veb-sahifani yubordingiz va men hali ham uni aylantirmoqdaman\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Veb-sahifangizni PDF-faylga aylantirish\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Veb-sahifangizga yetib boʻlmadi\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Veb-sahifani konvertlash muvaffaqiyatsiz tugadi\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/vi_VN/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: vi\\n\"\n\"Language-Team: Vietnamese\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: vi\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"Hủy bỏ\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"Thực hiện\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"Trở lại\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"Đã xảy ra lỗi, hãy bắt đầu lại với tệp hoặc lệnh của bạn\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"Không hoàn thành quá trình\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"Chào mừng bạn đến với PDF Bot!\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"Các tính năng chính:\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- Nén, hợp nhất, xem trước, đổi tên, tách và thêm hình nền mờ vào tệp PDF\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- Tạo tệp PDF từ tin nhắn văn bản\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- Trích xuất hình ảnh và văn bản từ các tệp PDF\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- Chuyển đổi file PDF thành hình ảnh\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- Chuyển đổi trang web và hình ảnh thành tệp PDF\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- Làm đẹp hình ảnh ghi chú viết tay vào tệp PDF\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- Và hơn thế nữa...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"Nhập {command} để xem cách sử dụng PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"Đặt Ngôn ngữ 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"Tham gia Kênh\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"Hỗ trợ PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Bạn có thể thực hiện hầu hết các nhiệm vụ bằng cách gửi cho tôi một trong những điều sau đây:\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- Tệp PDF\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- Hình ảnh\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- Nối kết trang web\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"Phần còn lại của các tác vụ có thể được thực hiện bằng cách sử dụng các lệnh sau:\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - so sánh tệp PDF\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - hợp nhất tệp PDF\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - chuyển đổi và kết hợp nhiều hình ảnh thành tệp PDF\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - tạo tệp PDF từ tin nhắn văn bản\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - thêm hình nền mờ vào tệp PDF\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Gửi cho tôi một trong những tệp PDF mà bạn muốn so sánh\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"Lưu ý rằng tôi chỉ có thể tìm kiếm sự khác biệt văn bản\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Gửi cho tôi các tập tin PDF khác mà bạn sẽ muốn so sánh\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"So sánh các tệp PDF của bạn\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"Không có sự khác biệt văn bản giữa các tệp PDF của bạn\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"Có điều gì đó không ổn, xin hãy thử lại\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"Nút đã hết hạn, hãy bắt đầu lại với tệp hoặc lệnh của bạn\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"Hình ảnh kết quả không hợp lệ, hãy thử lại\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"Gửi cho tôi phản hồi của bạn bằng tiếng Anh\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"Phản hồi không phải bằng tiếng Anh, hãy thử lại\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"Cảm ơn bạn đã phản hồi của bạn, tôi đã chuyển tiếp nó đến nhà phát triển của tôi\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"Tệp của bạn quá lớn để tôi có thể tải xuống và xử lý\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"Lưu ý rằng đây là giới hạn của Telegram Bot và tôi không thể làm gì trừ khi Telegram thay đổi giới hạn này\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"Xử lý tệp của bạn\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"Chọn nhiệm vụ bạn muốn thực hiện\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"Làm đẹp\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"Sang PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"Xóa tệp cuối cùng\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"Gửi cho tôi những hình ảnh mà bạn muốn làm đẹp hoặc chuyển đổi thành tệp PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"Lưu ý rằng các hình ảnh sẽ được làm đẹp và chuyển đổi theo thứ tự mà bạn gửi cho tôi\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"Bạn đã gửi cho tôi những hình ảnh này cho đến nay:\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"Chọn nhiệm vụ từ bên dưới nếu bạn đã gửi cho tôi tất cả các hình ảnh hoặc tiếp tục gửi cho tôi hình ảnh\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"Bạn đã xóa tất cả hình ảnh bạn đã gửi cho tôi\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} đã bị xóa\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"Bạn chưa gửi cho tôi bất kỳ hình ảnh nào\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"Bạn chỉ gửi cho tôi một hình ảnh\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"Làm đẹp và chuyển đổi hình ảnh của bạn thành tệp PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"Chuyển đổi hình ảnh của bạn thành tệp PDF\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"Chọn ngôn ngữ của bạn\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"Ngôn ngữ của bạn đã được thiết lập để {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Gửi cho tôi các tệp PDF mà bạn muốn hợp nhất\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"Lưu ý rằng các tệp sẽ được hợp nhất theo thứ tự mà bạn gửi cho tôi\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"Bạn đã gửi cho tôi những tệp PDF này cho đến nay:\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"Nhấn {done} nếu bạn đã gửi cho tôi tất cả các tệp PDF mà bạn muốn hợp nhất hoặc tiếp tục gửi cho tôi các tệp PDF\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"Bạn đã xóa tất cả các tệp PDF mà bạn đã gửi cho tôi\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"{file_name} đã bị loại bỏ vì sáp nhập\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"Bạn chưa gửi cho tôi bất kỳ tệp PDF nào\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"Bạn chỉ gửi cho tôi một tệp PDF\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"Hợp nhất các tệp PDF của bạn\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"Nói lời cảm ơn\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"Cà phê\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"Bia\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"Bữa ăn\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"Chọn cách bạn muốn hỗ trợ PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"Nói lời cảm ơn đến PDF Bot và giúp giữ cho nó chạy\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"Đã xảy ra lỗi, hãy thử lại\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"Cảm ơn bạn đã hỗ trợ của bạn!\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"Trợ giúp dịch PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"Tệp PDF của bạn đã được mã hóa, hãy giải mã tệp trước rồi thử lại\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"Tệp PDF của bạn không được mã hóa\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"Mật khẩu không chính xác, vui lòng thử lại\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"Tệp PDF của bạn được mã hóa bằng một phương pháp mà tôi không thể giải mã\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"Không tìm thấy hình ảnh nào trong tệp PDF của bạn\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"Không tìm thấy văn bản trong tệp PDF của bạn\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"Tôi không thể hợp nhất các tệp PDF của bạn vì tệp này không hợp lệ: %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"Tệp PDF của bạn đã có một lớp văn bản\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"Tệp PDF của bạn không hợp lệ\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"Nén\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"Kích thước tệp giảm {percent}, từ {old_size} xuống {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"Theo tỷ lệ phần trăm\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"Đến kích cỡ lề\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"Gửi cho tôi một số từ 0 đến 100\\n\\n\"\n\"Đây là phần trăm không gian lề để giữ lại giữa nội dung trong tệp PDF của bạn và trang\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"Gửi cho tôi một số mà bạn muốn điều chỉnh kích cỡ lề\\n\\n\"\n\"Số dương sẽ làm giảm kích thước lề và số âm sẽ làm tăng kích thước lề\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"Cây trồng\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"Chọn kiểu cắt bạn muốn thực hiện\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"Các giá trị cắt không hợp lệ, hãy thử lại\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"Decrypt\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Gửi cho tôi mật khẩu để giải mã tệp PDF của bạn\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"Mã hóa\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Gửi cho tôi mật khẩu để mã hóa tệp PDF của bạn\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"Trích xuất hình ảnh\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"Trích xuất văn bản\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"Thang độ xám\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"Đến hình ảnh\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"Download\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"Rename\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"Tên tệp không được chứa bất kỳ ký tự nào sau đây, vui lòng thử lại:\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Gửi cho tôi tên tệp mà bạn muốn đổi tên tệp PDF của mình thành\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"Xoay\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"Chọn độ bạn muốn xoay tệp PDF theo chiều kim đồng hồ\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"Theo yếu tố\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"Đến kích thước\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"Gửi cho tôi các yếu tố tỷ lệ cho các trục ngang và dọc\\n\\n\"\n\"Ví dụ: 2 0,5 - điều này sẽ nhân đôi trục ngang và giảm một nửa trục dọc\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"Gửi cho tôi chiều rộng và chiều cao\\n\\n\"\n\"Ví dụ: 150 200 - điều này sẽ đặt chiều rộng thành 150 và chiều cao là 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"Quy mô\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"Chọn loại tỷ lệ bạn muốn thực hiện\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"Các giá trị thang đo không hợp lệ, hãy thử lại\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"Split\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"Phạm vi phân tách không hợp lệ, vui lòng thử lại\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Gửi cho tôi một loạt các trang mà bạn muốn giữ lại\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"Sử dụng chung\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      tất cả các trang\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"Chỉ {range}      trang 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    3 trang đầu tiên\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     từ trang 8 trở đi\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"chỉ {range}     trang cuối cùng\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    tất cả các trang ngoại trừ trang cuối cùng\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"chỉ {range}     trang cuối cùng thứ hai\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    hai trang cuối cùng\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  trang cuối cùng thứ ba và thứ hai\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"Sử dụng nâng cao\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    trang {pages} và đến cuối cùng\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} trang {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   tất cả các trang theo thứ tự đảo ngược\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} trang {pages} ngoại trừ {page}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  trang {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Tệp của bạn quá lớn để tôi tải xuống và xử lý, vui lòng thử lại với một tệp khác\\n\\n\"\n\"Lưu ý rằng giới hạn này được thực thi bởi Telegram và tôi không thể làm gì trừ khi Telegram thay đổi nó\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"Tệp quá lớn để tôi có thể gửi cho bạn\\n\\n\"\n\"Lưu ý rằng giới hạn này được thực thi bởi Telegram và tôi không thể làm gì trừ khi Telegram thay đổi nó\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"Tệp của bạn không phải là hình ảnh, vui lòng thử lại\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"Không tìm thấy hình ảnh trong thư của bạn\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"Tệp của bạn không phải là tệp PDF, vui lòng thử lại\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"Hành động bị hủy bỏ\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"Đây là tệp kết quả của bạn\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"Nhảy dây\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Gửi cho tôi văn bản bạn muốn viết vào tệp PDF của mình\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Gửi cho tôi phông chữ mà bạn muốn sử dụng cho tệp PDF hoặc nhấn {skip} để sử dụng phông chữ mặc định\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"Xem tại đây để biết danh sách các phông chữ được hỗ trợ: {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"Phông chữ không xác định, vui lòng thử lại\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"Tạo tệp PDF của bạn\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Gửi cho tôi tệp PDF mà bạn muốn thêm hình nền mờ\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Gửi cho tôi tệp PDF hình mờ\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"Thêm hình nền mờ vào tệp PDF của bạn\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"Bạn đã gửi cho tôi trang web này rồi và tôi vẫn đang chuyển đổi nó\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"Chuyển đổi trang web của bạn thành tệp PDF\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"Không thể truy cập trang web của bạn\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"Không thể chuyển đổi trang web của bạn\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/zh_CN/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: zh\\n\"\n\"Language-Team: Chinese Simplified\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: zh-CN\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"取消\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"完成\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"返回\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"出现问题，使用文件或命令重新开始\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"未能完成进程\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"欢迎来到 PDF 机器人！\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"主要功能：\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- 压缩、合并、预览、重新命名、拆分并添加水印到 PDF 文件\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- 从文本消息创建 PDF 文件\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- 从 PDF 文件中提取图像和文本\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- 将 PDF 文件转换为图像\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- 将网页和图像转换为 PDF 文件\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- 将手写笔记图像美化为 PDF 文件\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- 还有更多...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"输入 {command}，查看如何使用 PDF 机器人\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"设置语言 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"加入頻道\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"支持 PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"您可以通过向我发送如下内容来执行大部分任务：\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF 文件\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- 图像\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- 网页链接\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"其余任务可使用以下命令执行：\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - 比较 PDF 文件\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - 合并 PDF 文件\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - 将多个图像转换合并为PDF文件\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - 从文本消息创建 PDF 文件\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - 在 PDF 文件中添加水印\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"向我发送您想要比较的 PDF 文件\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"请注意，我只能查找文本差异\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"发给我另一个你想要比较的PDF档案\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"正在比较你的PDF档案\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"您的 PDF 文件之间没有文本差异\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"出问题了，请再试一次\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"按钮已过期，请使用文件或命令重新开始\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"生成的图像无效，请重试\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"用英语向我反馈\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"反馈不是英文，再试一次\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"感谢您的反馈，我已将其转发给我的开发人员\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"您的文件太大，我无法下载和处理\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"请注意，这是 Telegram 机器人的限制，除非电报对此进行更改，否则我无能为力\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"正在处理您的文件\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"选择你想要做什么\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"美化\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"转换到PDF档案\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"移除最后一个文件\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"向我发送您想要美化或转换为PDF文件的图像\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"请注意，图像将按照您发送给我的顺序进行美化和转换\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"到目前为止，您已经向我发送了这些图像：\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"如果您已将所有图像发送给我，请从下面选择任务，或者继续向我发送图像\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"您已经删除了所有发送给我的图像\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} 已被删除\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"您还没有给我发任何图片\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"您只给我发了一张图片\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"美化图像并将其转换为PDF文件\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"将图像转换为 PDF 文件\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"选择你的语言\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"您的语言已设置为 {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"将您希望合并的 PDF 文件发送给我\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"请注意，文件将按照您发送给我的顺序合并\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"到目前为止，您已经向我发送了这些PDF文件：\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"如果您已将您希望合并的所有 PDF 文件发送给我，请点击 {done}，或者继续向我发送 PDF 文件\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"您已经删除了所有发送给我的 PDF 文件\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"用于合并的 {file_name} 已被移除\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"你还没有向我发送任何PDF档案\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"你只给我发了一个 PDF 文件\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"正在合并你的PDF档案\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji}（${value}）\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"说声感谢\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"咖啡\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"啤酒\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"套餐\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"选择你支持PDF Bot的方式\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"跟PDF Bot说谢谢并帮助它继续运行\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"出错了，再试一次\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"感谢你的支持！\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"帮助翻译PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"您的 PDF 文件已加密，请先解密，然后重试\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"你的PDF档案并没有加密\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"密码不正确，请重试\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"您的 PDF 文件使用了一种我无法解密的加密方法\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"在 PDF 文件中找不到图像\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"在 PDF 文件中找不到文本\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"无法合并您的 PDF 文件，因为此文件无效：%s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"你的PDF档案已经有一层文字\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"PDF 文件无效\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"压缩\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"文件大小减少了 {percent}，从 {old_size} 减少到了 {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"按百分比剪裁\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"按边距大小\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"给我发一个介于 0 到 100 的数字\\n\\n\"\n\"这是 PDF 文件中的内容与页面之间要保留的边距空间百分比\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"向我发送一个用于调整边距大小的数字\\n\\n\"\n\"正数将减小边距大小，负数将增加边距大小\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"裁剪\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"选择您要执行的裁剪类型\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"裁剪值无效，请重试\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"解码\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"把密码发给我来解密你的PDF档案\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"加密\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"把密码发给我来加密你的PDF档案\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"提取图像\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"提取文本\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"灰度\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"到图像\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"预览\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"重新命名\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"请重试，文件名不能包含以下字符：%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"向我发送你想要用来命名的PDF档案名称\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"旋转\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"选择你想要顺时针旋转你PDF档案的度数\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"按比例因子\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"按尺寸\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"将水平轴和垂直轴的比例因子发送给我\\n\\n\"\n\"示例：2 0.5 - 这将使水平轴加倍，垂直轴减半\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"将宽度和高度发送给我\\n\\n\"\n\"示例：150 200 - 这会将宽度设置为 150，将高度设置为 200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"缩放\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"选择你要的缩放类型\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"比例值无效，请重试\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"分割\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"分割范围无效，请重试\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"向我发送你想要保留的页面范围\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"基本用法\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      所有页面\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      仅第 8 页\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    前三页\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     从第 8 页开始\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     仅最后一页\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    除最后一页之外的所有页面\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     仅倒数第二页\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    最后两页\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  倒数第二三页\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"进阶用法\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    {pages} 页到最后\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} 共 {pages} 页\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   倒序排列所有页面\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} 除第 {page} 页外共 {pages} 页\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  共 {pages} 页\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"您的文件太大，我无法下载和处理，请使用其他文件重试\\n\\n\"\n\"请注意，此限制是由 Telegram 强制执行的，除非 Telegram 更改它，否则我无能为力\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"文件太大，我无法发送\\n\\n\"\n\"请注意，此限制是由 Telegram 强制执行的，除非电报更改它，否则我无能为力\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"您的文件不是图像，请重试\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"未在您的消息中找到图片\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"您的文件不是 PDF 文件，请再试一次\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"操作取消\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"你的输出档案\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"跳\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"向我发送你想写在PDF档案的文字\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"将您希望用于 PDF 文件的字体发送给我，或按 {skip} 使用默认字体\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"请参阅此处查看支持字体列表： {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"未知字体，请再试一次\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"正在创建你的PDF档案\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"向我发送你想要添加水印的PDF档案\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"发给我水印PDF档案\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"正在添加水印到你的PDF档案中\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"您已经向我发送了此网页，但我仍在转换它\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"将网页转换为 PDF 文件\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"无法访问您的网页\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"无法转换您的网页\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/zh_HK/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: zh\\n\"\n\"Language-Team: Chinese Traditional, Hong Kong\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: zh-HK\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"取消\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"搞掂\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"返去\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"歡迎嚟到PDF Bot！\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"主要功能：\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- 壓縮，合併，預覽，重新命名，分割同加水印去PDF檔案\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- 用文字訊息嚟創建PDF檔案\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- 將PDF檔案入面嘅圖片同文字攞出嚟\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- 將PDF檔案轉做圖片\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- 將網頁同圖片轉做PDF檔案\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- 美化手寫筆記同轉做PDF檔案\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- 仲有更多功能...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"用 {command} 嚟睇下點用PDF Bot\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"設置語言 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"加入頻道\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"支持PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"Send以下其中一樣畀我就可以用到大部分嘅功能：\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF檔案\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- 網頁連結\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"靜低嘅功能就要用以下呢啲嘅指令：\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - 對比PDF檔案\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - 合併PDF檔案\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - 用文字訊息嚟創建PDF檔案\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - 加水印去PDF檔案\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"Send其中一個你想對比嘅PDF檔案畀我\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"留意返，我淨係可以對比檔案入面嘅文字\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"Send另一個你想比較嘅PDF檔案畀我\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"比較緊你嘅PDF檔案\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"你嘅PDF檔案係文字上冇分別\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"發生咗未知嘅錯誤，唔該試多次\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"你畀嘅意見唔係英文，試多次\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"你嘅檔案太大啦，我下載唔到同處理唔到\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"留意番呢個係Telegram Bot嘅限制，呢個限唔係我嘅控制範圍，要等Telegram改呢個限制我先至可以處理你嘅檔案\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"揀你想做啲乜\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"美化\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"轉做PDF\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"揀你嘅語言\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"你嘅語言設定咗做 {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"Send你想合併嘅PDF檔案畀我\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"留意返，我會根據你send畀我嘅順序嚟合併你啲檔案\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"如果你已經send晒你想合併嘅PDF檔案畀我就噤{done}，唔係嘅話就繼續send啲檔案畀我\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"Del咗{file_name}，呢個檔案唔會攞嚟合併\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"你都未send PDF檔案畀我\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"你淨係send咗一個PDF檔案畀我咋\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"合併緊你嘅PDF檔案\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} (${value})\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"講多謝\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"咖啡\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"啤酒\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"一餐飯\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"揀你想點支持PDF Bot\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"同PDF Bot講多謝同埋幫佢繼續運行\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"多謝你嘅支持！\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"幫手翻譯PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"你嘅PDF檔案本身都冇加密\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"你嘅PDF檔案用嘅加密方式我解密唔到\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"你嘅PDF檔案已經有層文字\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"壓縮\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"檔案大小細咗{percent}，由{old_size}壓縮到{new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"裁剪\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"解密\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"Send解密密碼畀我嚟解密你嘅PDF檔案\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"加密\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"Send加密密碼畀我嚟加密你嘅PDF檔案\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"預覽\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"重新命名\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"Send你想要嘅PDF檔案名畀我\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"旋轉\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"揀你想順時針旋轉你嘅PDF檔案嘅度數\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"縮放\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"分割\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"Send你想保留嘅頁數畀我\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"基本用法\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      全部頁數\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"{range}      靜係要第8頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"{range}    頭3頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     由第8頁開始保留\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"{range}     靜係要最尾一頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"{range}    全部頁數除咗最尾一頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"{range}     靜係要尾二果頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"{range}    靜係要最尾兩頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  靜係要尾三同尾二兩頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"進階用法\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    第{pages}頁到最尾\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} 第{pages}頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   倒轉全部頁數\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"{range} 第{pages}頁除咗第{page}頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  第{pages}頁\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"你嘅檔案唔係PDF檔案，唔該試多次\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"取消咗操作啦\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"你嘅檔案\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"Send你想寫落PDF檔案嘅字比我\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"Send你想用嘅PDF檔案字體畀我，或者噤{skip}嚟用預設嘅字體\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"係呢度睇支援嘅字體：{fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"不明字體，唔該試多次\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"整緊你嘅PDF檔案\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"Send你想加水印嘅PDF檔案畀我\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"Send個水印PDF檔案畀我\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"加緊水印去你個PDF檔案\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "locale/zh_TW/LC_MESSAGES/pdf_bot.po",
    "content": "# locale translations for telegram-pdf-bot.\n# Copyright (C) 2021 zeshuaro\n# This file is distributed under the same license as the telegram-pdf-bot\n# project.\n# zeshuaro <zeshuaro@gmail.com>, 2021.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: telegram-pdf-bot\\n\"\n\"Report-Msgid-Bugs-To: zeshuaro@gmail.com\\n\"\n\"POT-Creation-Date: 2025-10-19 06:16+0000\\n\"\n\"PO-Revision-Date: 2025-10-19 06:16\\n\"\n\"Last-Translator: \\n\"\n\"Language: zh\\n\"\n\"Language-Team: Chinese Traditional\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Generated-By: Babel 2.17.0\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: telegram-pdf-bot\\n\"\n\"X-Crowdin-Project-ID: 370289\\n\"\n\"X-Crowdin-Language: zh-TW\\n\"\n\"X-Crowdin-File: pdf_bot.po\\n\"\n\"X-Crowdin-File-ID: 88\\n\"\n\n#: pdf_bot/consts.py:11\nmsgid \"Cancel\"\nmsgstr \"取消\"\n\n#: pdf_bot/consts.py:12\nmsgid \"Done\"\nmsgstr \"完成\"\n\n#: pdf_bot/consts.py:13 pdf_bot/telegram_internal/telegram_service.py:48\nmsgid \"Back\"\nmsgstr \"返回\"\n\n#: pdf_bot/consts.py:23\nmsgid \"Something went wrong, start over with your file or command\"\nmsgstr \"出現問題，使用檔或命令重新開始\"\n\n#: pdf_bot/cli/cli_service.py:35\nmsgid \"Failed to complete process\"\nmsgstr \"未能完成進程\"\n\n#: pdf_bot/command/command_service.py:38\nmsgid \"Welcome to PDF Bot!\"\nmsgstr \"歡迎來到 Pdf 機器人！\"\n\n#: pdf_bot/command/command_service.py:39\nmsgid \"Key features:\"\nmsgstr \"主要功能：\"\n\n#: pdf_bot/command/command_service.py:41\nmsgid \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\nmsgstr \"- 壓縮、合併、預覽、重命名、拆分並添加浮水印到 PDF 檔\"\n\n#: pdf_bot/command/command_service.py:43\nmsgid \"- Create PDF files from text messages\"\nmsgstr \"- 從簡訊創建 PDF 檔\"\n\n#: pdf_bot/command/command_service.py:44\nmsgid \"- Extract images and text from PDF files\"\nmsgstr \"- 從 PDF 檔中提取影像和文字\"\n\n#: pdf_bot/command/command_service.py:45\nmsgid \"- Convert PDF files into images\"\nmsgstr \"- 將 PDF 檔案轉換為影像\"\n\n#: pdf_bot/command/command_service.py:46\nmsgid \"- Convert webpages and images into PDF files\"\nmsgstr \"- 將網頁和圖像轉換為 PDF 檔\"\n\n#: pdf_bot/command/command_service.py:47\nmsgid \"- Beautify handwritten notes images into PDF files\"\nmsgstr \"- 將手寫筆記圖像美化為 PDF 檔\"\n\n#: pdf_bot/command/command_service.py:48\nmsgid \"- And more...\"\nmsgstr \"- 還有更多...\"\n\n#: pdf_bot/command/command_service.py:49\n#, python-brace-format\nmsgid \"Type {command} to see how to use PDF Bot\"\nmsgstr \"類型 {command} ，查看如何使用 PDF 機器人\"\n\n#: pdf_bot/command/command_service.py:58\nmsgid \"Set Language 🌎\"\nmsgstr \"設定語言 🌎\"\n\n#: pdf_bot/command/command_service.py:60\n#: pdf_bot/telegram_internal/telegram_service.py:222\nmsgid \"Join Channel\"\nmsgstr \"加入頻道\"\n\n#: pdf_bot/command/command_service.py:61 pdf_bot/payment/payment_service.py:74\n#: pdf_bot/telegram_internal/telegram_service.py:223\nmsgid \"Support PDF Bot\"\nmsgstr \"支持PDF Bot\"\n\n#: pdf_bot/command/command_service.py:70\nmsgid \"You can perform most of the tasks by sending me one of the followings:\"\nmsgstr \"您可以透過向我傳送以下以下一項來執行大部分任務：\"\n\n#: pdf_bot/command/command_service.py:71\nmsgid \"- PDF files\"\nmsgstr \"- PDF 檔\"\n\n#: pdf_bot/command/command_service.py:72\nmsgid \"- Images\"\nmsgstr \"- 影像\"\n\n#: pdf_bot/command/command_service.py:73\nmsgid \"- Webpage links\"\nmsgstr \"- 網頁連結\"\n\n#: pdf_bot/command/command_service.py:74\nmsgid \"The rest of the tasks can be performed by using the following commands:\"\nmsgstr \"其餘任務可使用以下命令執行：\"\n\n#: pdf_bot/command/command_service.py:75\n#, python-brace-format\nmsgid \"{command} - compare PDF files\"\nmsgstr \"{command} - 比較 PDF 檔\"\n\n#: pdf_bot/command/command_service.py:76\n#, python-brace-format\nmsgid \"{command} - merge PDF files\"\nmsgstr \"{command} - 合併 PDF 檔\"\n\n#: pdf_bot/command/command_service.py:78\n#, python-brace-format\nmsgid \"{command} - convert and combine multiple images into PDF files\"\nmsgstr \"{command} - 將多個影像轉換並合併為PDF檔\"\n\n#: pdf_bot/command/command_service.py:80\n#, python-brace-format\nmsgid \"{command} - create PDF files from text messages\"\nmsgstr \"{command} - 從簡訊創建 PDF 檔\"\n\n#: pdf_bot/command/command_service.py:83\n#, python-brace-format\nmsgid \"{command} - add watermark to PDF files\"\nmsgstr \"{command} - 在 PDF 檔中添加浮水印\"\n\n#: pdf_bot/compare/compare_service.py:41\nmsgid \"Send me one of the PDF files that you'll like to compare\"\nmsgstr \"向我發送您要比較的 PDF 檔之一\"\n\n#: pdf_bot/compare/compare_service.py:42\nmsgid \"Note that I can only look for text differences\"\nmsgstr \"請注意，我只能查找文本差異\"\n\n#: pdf_bot/compare/compare_service.py:64\nmsgid \"Send me the other PDF file that you'll like to compare\"\nmsgstr \"發給我另一個你想要比較的PDF檔案\"\n\n#: pdf_bot/compare/compare_service.py:83\nmsgid \"Comparing your PDF files\"\nmsgstr \"正在比較你的PDF檔案\"\n\n#: pdf_bot/compare/compare_service.py:91\nmsgid \"There are no text differences between your PDF files\"\nmsgstr \"您的 PDF 檔案之間沒有文字差異\"\n\n#: pdf_bot/error/error_handler.py:38 pdf_bot/error/error_handler.py:44\n#: pdf_bot/telegram_internal/telegram_service.py:102\n#: pdf_bot/telegram_internal/telegram_service.py:118\nmsgid \"Something went wrong, please try again\"\nmsgstr \"出問題了，請再試一次\"\n\n#: pdf_bot/error/error_handler.py:58 pdf_bot/error/error_service.py:17\nmsgid \"The button has expired, start over with your file or command\"\nmsgstr \"按鈕已過期，請使用檔或命令重新開始\"\n\n#: pdf_bot/error/error_handler.py:60\nmsgid \"The resulted image is invalid, try again\"\nmsgstr \"生成的圖像無效，請重試\"\n\n#: pdf_bot/feedback/feedback_service.py:31\nmsgid \"Send me your feedback in English\"\nmsgstr \"用英語向我發送您的反饋\"\n\n#: pdf_bot/feedback/feedback_service.py:54\nmsgid \"The feedback is not in English, try again\"\nmsgstr \"反饋不是英文，再試一次\"\n\n#: pdf_bot/feedback/feedback_service.py:58\nmsgid \"Thank you for your feedback, I've forwarded it to my developer\"\nmsgstr \"感謝您的反饋，我已將其轉發給我的開發人員\"\n\n#: pdf_bot/file/file_service.py:54\nmsgid \"Your file is too big for me to download and process\"\nmsgstr \"您的檔太大，我無法下載和處理\"\n\n#: pdf_bot/file/file_service.py:56\nmsgid \"Note that this is a Telegram Bot limitation and there's nothing I can do unless Telegram changes this limit\"\nmsgstr \"請注意，這是一個電報機器人的限制，我什麼也做不了，除非電報改變這個限制\"\n\n#: pdf_bot/file_processor/abstract_file_processor.py:105\n#: pdf_bot/file_processor/abstract_file_processor.py:163\nmsgid \"Processing your file\"\nmsgstr \"處理您的檔案\"\n\n#: pdf_bot/file_processor/file_task_mixin.py:69\nmsgid \"Select the task that you'll like to perform\"\nmsgstr \"選擇你想要做什麼\"\n\n#: pdf_bot/image_handler/batch_image_service.py:20\n#: pdf_bot/image_processor/beautify_image_processor.py:24\nmsgid \"Beautify\"\nmsgstr \"美化\"\n\n#: pdf_bot/image_handler/batch_image_service.py:21\n#: pdf_bot/image_processor/image_to_pdf_processor.py:24\nmsgid \"To PDF\"\nmsgstr \"轉換到PDF檔案\"\n\n#: pdf_bot/image_handler/batch_image_service.py:22\n#: pdf_bot/merge/merge_service.py:19\nmsgid \"Remove last file\"\nmsgstr \"刪除最後一個檔\"\n\n#: pdf_bot/image_handler/batch_image_service.py:42\nmsgid \"Send me the images that you'll like to beautify or convert into a PDF file\"\nmsgstr \"向我發送您想要美化或轉換為PDF檔的圖像\"\n\n#: pdf_bot/image_handler/batch_image_service.py:45\nmsgid \"Note that the images will be beautified and converted in the order that you send me\"\nmsgstr \"請注意，圖像將按照您發送給我的順序進行美化和轉換\"\n\n#: pdf_bot/image_handler/batch_image_service.py:93\nmsgid \"You've sent me these images so far:\"\nmsgstr \"到目前為止，您已經向我發送了這些圖像：\"\n\n#: pdf_bot/image_handler/batch_image_service.py:107\nmsgid \"Select the task from below if you've sent me all the images, or keep sending me the images\"\nmsgstr \"如果您已將所有圖像發送給我，請從下面選擇任務，或者繼續向我發送圖像\"\n\n#: pdf_bot/image_handler/batch_image_service.py:127\nmsgid \"You've already removed all the images you've sent me\"\nmsgstr \"您已經刪除了發送給我的所有影像\"\n\n#: pdf_bot/image_handler/batch_image_service.py:131\n#, python-brace-format\nmsgid \"{file_name} has been removed\"\nmsgstr \"{file_name} 已被刪除\"\n\n#: pdf_bot/image_handler/batch_image_service.py:151\nmsgid \"You haven't sent me any images\"\nmsgstr \"你還沒有給我發任何圖片\"\n\n#: pdf_bot/image_handler/batch_image_service.py:154\nmsgid \"You've only sent me one image\"\nmsgstr \"你只給我發了一張圖片\"\n\n#: pdf_bot/image_handler/batch_image_service.py:171\nmsgid \"Beautifying and converting your images into a PDF file\"\nmsgstr \"美化圖像並將其轉換為PDF檔\"\n\n#: pdf_bot/image_handler/batch_image_service.py:173\nmsgid \"Converting your images into a PDF file\"\nmsgstr \"將影像轉換為 PDF 檔\"\n\n#: pdf_bot/language/language_service.py:87\nmsgid \"Select your language\"\nmsgstr \"選擇你的語言\"\n\n#: pdf_bot/language/language_service.py:119\n#, python-brace-format\nmsgid \"Your language has been set to {language}\"\nmsgstr \"您的語言已設定為 {language}\"\n\n#: pdf_bot/merge/merge_service.py:38\nmsgid \"Send me the PDF files that you'll like to merge\"\nmsgstr \"將您希望合併的 PDF 檔案發送給我\"\n\n#: pdf_bot/merge/merge_service.py:39\nmsgid \"Note that the files will be merged in the order that you send me\"\nmsgstr \"請注意，檔將按照您發送給我的順序合併\"\n\n#: pdf_bot/merge/merge_service.py:85\nmsgid \"You've sent me these PDF files so far:\"\nmsgstr \"到目前為止，您已經向我發送了這些PDF檔：\"\n\n#: pdf_bot/merge/merge_service.py:99\n#, python-brace-format\nmsgid \"Press {done} if you've sent me all the PDF files that you'll like to merge or keep sending me the PDF files\"\nmsgstr \"按 {done} ，如果您已將您希望合併的所有 PDF 檔發送給我，或繼續將 PDF 檔發送給我\"\n\n#: pdf_bot/merge/merge_service.py:120\nmsgid \"You've already removed all the PDF files you've sent me\"\nmsgstr \"您已經刪除了發送給我的所有PDF檔\"\n\n#: pdf_bot/merge/merge_service.py:124\n#, python-brace-format\nmsgid \"{file_name} has been removed for merging\"\nmsgstr \"合併 {file_name} 已被移除\"\n\n#: pdf_bot/merge/merge_service.py:146\nmsgid \"You haven't sent me any PDF files\"\nmsgstr \"你還沒有向我發送任何PDF檔案\"\n\n#: pdf_bot/merge/merge_service.py:149\nmsgid \"You've only sent me one PDF file\"\nmsgstr \"你只寄給我一個 Pdf 檔\"\n\n#: pdf_bot/merge/merge_service.py:162\nmsgid \"Merging your PDF files\"\nmsgstr \"正在合併你的PDF檔案\"\n\n#: pdf_bot/payment/payment_service.py:26\n#, python-brace-format\nmsgid \"{message} {emoji} (${value})\"\nmsgstr \"{message} {emoji} （${value}）\"\n\n#: pdf_bot/payment/payment_service.py:30\nmsgid \"Say Thanks\"\nmsgstr \"說謝謝\"\n\n#: pdf_bot/payment/payment_service.py:31\nmsgid \"Coffee\"\nmsgstr \"咖啡\"\n\n#: pdf_bot/payment/payment_service.py:32\nmsgid \"Beer\"\nmsgstr \"啤酒\"\n\n#: pdf_bot/payment/payment_service.py:33\nmsgid \"Meal\"\nmsgstr \"餐\"\n\n#: pdf_bot/payment/payment_service.py:59\nmsgid \"Select how you want to support PDF Bot\"\nmsgstr \"選擇你支持PDF Bot的方式\"\n\n#: pdf_bot/payment/payment_service.py:75\nmsgid \"Say thanks to PDF Bot and help keep it running\"\nmsgstr \"跟PDF Bot說謝謝並幫助它繼續運行\"\n\n#: pdf_bot/payment/payment_service.py:89\nmsgid \"Something went wrong, try again\"\nmsgstr \"出錯了，再試一次\"\n\n#: pdf_bot/payment/payment_service.py:96\nmsgid \"Thank you for your support!\"\nmsgstr \"感謝你的支持！\"\n\n#: pdf_bot/payment/payment_service.py:115\nmsgid \"Help translate PDF Bot\"\nmsgstr \"幫助翻譯PDF Bot\"\n\n#: pdf_bot/pdf/exceptions.py:29\nmsgid \"Your PDF file is encrypted, decrypt it first then try again\"\nmsgstr \"您的 PDF 檔已加密，請先解密，然後重試\"\n\n#: pdf_bot/pdf/pdf_service.py:163\nmsgid \"Your PDF file is not encrypted\"\nmsgstr \"你的PDF檔案並沒有加密\"\n\n#: pdf_bot/pdf/pdf_service.py:167\nmsgid \"Incorrect password, please try again\"\nmsgstr \"密碼不正確，請重試\"\n\n#: pdf_bot/pdf/pdf_service.py:170\nmsgid \"Your PDF file is encrypted with a method that I can't decrypt\"\nmsgstr \"您的 PDF 檔使用一種無法解密的方法進行加密\"\n\n#: pdf_bot/pdf/pdf_service.py:202\nmsgid \"No images found in your PDF file\"\nmsgstr \"在 PDF 檔中找不到影像\"\n\n#: pdf_bot/pdf/pdf_service.py:214\nmsgid \"No text found in your PDF file\"\nmsgstr \"在 PDF 檔中找不到任何文字\"\n\n#: pdf_bot/pdf/pdf_service.py:233\n#, python-format\nmsgid \"I couldn't merge your PDF files as this file is invalid: %s\"\nmsgstr \"我無法合併您的PDF檔，因為此檔無效： %s\"\n\n#: pdf_bot/pdf/pdf_service.py:248\nmsgid \"Your PDF file already has a text layer\"\nmsgstr \"你的PDF檔案已經有一層文字\"\n\n#: pdf_bot/pdf/pdf_service.py:337\nmsgid \"Your PDF file is invalid\"\nmsgstr \"您的 PDF 檔無效\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:24\nmsgid \"Compress\"\nmsgstr \"壓縮\"\n\n#: pdf_bot/pdf_processor/compress_pdf_processor.py:35\n#, python-brace-format\nmsgid \"File size reduced by {percent}, from {old_size} to {new_size}\"\nmsgstr \"檔大小減少 {percent}，從 {old_size} 減少到 {new_size}\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:17\nmsgid \"By percentage\"\nmsgstr \"按百分比\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:18\nmsgid \"To margin size\"\nmsgstr \"到邊距大小\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:25\nmsgid \"Send me a number between 0 and 100\\n\\n\"\n\"This is the percentage of margin space to retain between the content in your PDF file and the page\"\nmsgstr \"給我發一個介於 0 到 100\\n\\n\"\n\"之間的數位 這是 PDF 檔中的內容與頁面之間要保留的邊距空間百分比\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:31\nmsgid \"Send me a number that you'll like to adjust the margin size\\n\\n\"\n\"Positive numbers will decrease the margin size and negative numbers will increase it\"\nmsgstr \"向我發送一個您想調整邊距大小的數位\\n\\n\"\n\"正數將減小邊距大小，負數將增加邊距大小\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:56\nmsgid \"Crop\"\nmsgstr \"裁剪\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:60\nmsgid \"Select the crop type you'll like to perform\"\nmsgstr \"選擇您要執行的裁剪類型\"\n\n#: pdf_bot/pdf_processor/crop_pdf_processor.py:68\nmsgid \"The crop values are invalid, try again\"\nmsgstr \"裁剪值無效，請重試\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:33\nmsgid \"Decrypt\"\nmsgstr \"解密\"\n\n#: pdf_bot/pdf_processor/decrypt_pdf_processor.py:40\nmsgid \"Send me the password to decrypt your PDF file\"\nmsgstr \"把密碼發給我來解密你的PDF檔案\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:27\nmsgid \"Encrypt\"\nmsgstr \"加密\"\n\n#: pdf_bot/pdf_processor/encrypt_pdf_processor.py:34\nmsgid \"Send me the password to encrypt your PDF file\"\nmsgstr \"把密碼發給我來加密你的PDF檔案\"\n\n#: pdf_bot/pdf_processor/extract_pdf_image_processor.py:24\nmsgid \"Extract images\"\nmsgstr \"提取圖像\"\n\n#: pdf_bot/pdf_processor/extract_pdf_text_processor.py:24\nmsgid \"Extract text\"\nmsgstr \"提取文字\"\n\n#: pdf_bot/pdf_processor/grayscale_pdf_processor.py:24\nmsgid \"Grayscale\"\nmsgstr \"灰度\"\n\n#: pdf_bot/pdf_processor/pdf_to_image_processor.py:24\nmsgid \"To images\"\nmsgstr \"到圖像\"\n\n#: pdf_bot/pdf_processor/preview_pdf_processor.py:24\nmsgid \"Preview\"\nmsgstr \"預覽\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:30\nmsgid \"Rename\"\nmsgstr \"重新命名\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:35\n#, python-format\nmsgid \"File names can't contain any of the following characters, please try again:\\n\"\n\"%s\"\nmsgstr \"檔案名不能包含以下任何字元，請重試：\\n\"\n\"%s\"\n\n#: pdf_bot/pdf_processor/rename_pdf_processor.py:40\nmsgid \"Send me the file name that you'll like to rename your PDF file into\"\nmsgstr \"向我發送你想要用來命名的PDF檔案名稱\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:38\nmsgid \"Rotate\"\nmsgstr \"旋轉\"\n\n#: pdf_bot/pdf_processor/rotate_pdf_processor.py:76\nmsgid \"Select the degrees that you'll like to rotate your PDF file in clockwise\"\nmsgstr \"選擇你想要順時針旋轉你PDF檔案的度數\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:18\nmsgid \"By factor\"\nmsgstr \"按因素\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:19\nmsgid \"To dimension\"\nmsgstr \"到尺寸\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:26\nmsgid \"Send me the scaling factors for the horizontal and vertical axes\\n\\n\"\n\"Example: 2 0.5 - this will double the horizontal axis and halve the vertical axis\"\nmsgstr \"將水平軸和垂直軸的比例因數發送給我\\n\\n\"\n\"示例：2 0.5 - 這將使水平軸加倍，垂直軸減半\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:32\nmsgid \"Send me the width and height\\n\\n\"\n\"Example: 150 200 - this will set the width to 150 and height to 200\"\nmsgstr \"將寬度和高度發送給我\\n\\n\"\n\"示例：150 200 - 這會將寬度設置為150，將高度設置為200\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:56\nmsgid \"Scale\"\nmsgstr \"縮放\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:60\nmsgid \"Select the scale type you'll like to perform\"\nmsgstr \"選擇您要執行的秤類型\"\n\n#: pdf_bot/pdf_processor/scale_pdf_processor.py:68\nmsgid \"The scale values are invalid, try again\"\nmsgstr \"比例值無效，請重試\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:29\nmsgid \"Split\"\nmsgstr \"分割\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:33\nmsgid \"The split range is invalid, please try again\"\nmsgstr \"分割範圍無效，請重試\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:55\nmsgid \"Send me the range of pages that you'll like to keep\"\nmsgstr \"向我發送你想要保留的頁面範圍\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:56\nmsgid \"General usage\"\nmsgstr \"基本用法\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:57\n#, python-brace-format\nmsgid \"{range}      all pages\"\nmsgstr \"{range}      所有頁面\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:58\n#, python-brace-format\nmsgid \"{range}      page 8 only\"\nmsgstr \"僅限 {range}      頁 8\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:59\n#, python-brace-format\nmsgid \"{range}    first three pages\"\nmsgstr \"前三頁{range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:60\n#, python-brace-format\nmsgid \"{range}     from page 8 onward\"\nmsgstr \"{range}     從第8頁開始\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:61\n#, python-brace-format\nmsgid \"{range}     last page only\"\nmsgstr \"僅 {range}     最後一頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:62\n#, python-brace-format\nmsgid \"{range}    all pages except the last page\"\nmsgstr \"除最後一頁外，所有頁面都{range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:63\n#, python-brace-format\nmsgid \"{range}     second last page only\"\nmsgstr \"僅 {range}     最後一頁的第二頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:64\n#, python-brace-format\nmsgid \"{range}    last two pages\"\nmsgstr \"最後兩頁{range}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:65\n#, python-brace-format\nmsgid \"{range}  third and second last pages\"\nmsgstr \"{range}  第三頁和第二頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:66\nmsgid \"Advanced usage\"\nmsgstr \"進階用法\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:67\n#, python-brace-format\nmsgid \"{range}    pages {pages} and to the end\"\nmsgstr \"{range}    頁 {pages} ，並到最後\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:70\n#, python-brace-format\nmsgid \"{range} pages {pages}\"\nmsgstr \"{range} 頁 {pages}\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:71\n#, python-brace-format\nmsgid \"{range}   all pages in reversed order\"\nmsgstr \"{range}   所有頁面的倒序\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:72\n#, python-brace-format\nmsgid \"{range} pages {pages} except {page}\"\nmsgstr \"除了 {page}， {pages} 頁{range} 頁\"\n\n#: pdf_bot/pdf_processor/split_pdf_processor.py:75\n#, python-brace-format\nmsgid \"{range}  pages {pages}\"\nmsgstr \"{range}  頁 {pages}\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:69\nmsgid \"Your file is too large for me to download and process, please try again with a different file\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"您的檔太大，我無法下載和處理，請使用其他檔重試\\n\\n\"\n\"請注意，此限制是由Telegram強制執行的，除非Telegram更改它，否則我無能為力\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:81\nmsgid \"The file is too large for me to send to you\\n\\n\"\n\"Note that this limit is enforced by Telegram and there's nothing I can do unless Telegram changes it\"\nmsgstr \"檔太大，我無法發送給您\\n\\n\"\n\"請注意，此限制是由電報強制執行的，除非電報更改它，否則我無能為力\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:156\nmsgid \"Your file is not an image, please try again\"\nmsgstr \"您的檔不是圖像，請重試\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:162\nmsgid \"No image found in your message\"\nmsgstr \"在郵件中未找到圖像\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:172\nmsgid \"Your file is not a PDF file, please try again\"\nmsgstr \"您的檔不是 PDF 檔，請再試一次\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:197\n#: pdf_bot/telegram_internal/telegram_service.py:200\nmsgid \"Action cancelled\"\nmsgstr \"操作取消\"\n\n#: pdf_bot/telegram_internal/telegram_service.py:271\n#: pdf_bot/telegram_internal/telegram_service.py:279\nmsgid \"Here is your result file\"\nmsgstr \"你的輸出檔案\"\n\n#: pdf_bot/text/text_service.py:21\nmsgid \"Skip\"\nmsgstr \"跳\"\n\n#: pdf_bot/text/text_service.py:40\nmsgid \"Send me the text that you'll like to write into your PDF file\"\nmsgstr \"向我發送你想寫在PDF檔案的文字\"\n\n#: pdf_bot/text/text_service.py:59\n#, python-brace-format\nmsgid \"Send me the font that you'll like to use for the PDF file or press {skip} to use the default font\"\nmsgstr \"將您希望用於 PDF 檔案的字型發送給我，或按 {skip} 使用預設字體\"\n\n#: pdf_bot/text/text_service.py:62\n#, python-brace-format\nmsgid \"See here for the list of supported fonts: {fonts}\"\nmsgstr \"請參閱此處檢視支援字型清單： {fonts}\"\n\n#: pdf_bot/text/text_service.py:90\nmsgid \"Unknown font, please try again\"\nmsgstr \"未知字體，請再試一次\"\n\n#: pdf_bot/text/text_service.py:108\nmsgid \"Creating your PDF file\"\nmsgstr \"正在創建你的PDF檔案\"\n\n#: pdf_bot/watermark/watermark_service.py:38\nmsgid \"Send me the PDF file that you'll like to add a watermark\"\nmsgstr \"向我發送你想要添加水印的PDF檔案\"\n\n#: pdf_bot/watermark/watermark_service.py:56\nmsgid \"Send me the watermark PDF file\"\nmsgstr \"發給我水印PDF檔案\"\n\n#: pdf_bot/watermark/watermark_service.py:74\nmsgid \"Adding the watermark onto your PDF file\"\nmsgstr \"正在添加水印到你的PDF檔案中\"\n\n#: pdf_bot/webpage/webpage_service.py:41\nmsgid \"You've sent me this webpage already and I'm still converting it\"\nmsgstr \"您已經向我發送了此網頁，但我仍在轉換它\"\n\n#: pdf_bot/webpage/webpage_service.py:45\nmsgid \"Converting your webpage into a PDF file\"\nmsgstr \"將網頁轉換為 PDF 檔\"\n\n#: pdf_bot/webpage/webpage_service.py:72\nmsgid \"Unable to reach your webpage\"\nmsgstr \"無法訪問您的網頁\"\n\n#: pdf_bot/webpage/webpage_service.py:84\nmsgid \"Failed to convert your webpage\"\nmsgstr \"無法轉換您的網頁\"\n\n#~ msgid \"\"\n#~ \"Send me the first photo that \"\n#~ \"you'll like to beautify or convert \"\n#~ \"into PDF\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the next photo that you'll like to beautify or convert to PDF\\n\"\n#~ \"\\n\"\n#~ \"Select the task from below if you have sent me all the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Features*\\n\"\n#~ \"- Compare, crop, decrypt, encrypt, \"\n#~ \"merge, rotate, scale, split and add \"\n#~ \"a watermark to a PDF file\\n\"\n#~ \"- Extract text and photos in a \"\n#~ \"PDF file and convert a PDF file\"\n#~ \" into photos\\n\"\n#~ \"- Beautify and convert photos into PDF format\\n\"\n#~ \"- Convert a web page into a PDF file\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" simply by sending me a PDF \"\n#~ \"file, a photo or a link to a\"\n#~ \" web page.\\n\"\n#~ \"\\n\"\n#~ \"Some tasks can be performed by \"\n#~ \"using the commands /compare, /merge, \"\n#~ \"/watermark or /photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be \"\n#~ \"performed by using the commands \"\n#~ \"/compare, /merge, /photo, /text or \"\n#~ \"/watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"*Key features:*\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- _And more..._\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"- /compare _PDF files_\\n\"\n#~ \"- /merge _PDF files_\\n\"\n#~ \"- /photo _convert and combine multiple photos into PDF files_\\n\"\n#~ \"- /text _create PDF files from text messages_\\n\"\n#~ \"- /watermark _add watermark to PDF files_\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press *Done* if you've sent me all\"\n#~ \" the PDF files that you'll like \"\n#~ \"to merge or keep sending me the\"\n#~ \" PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"*{}* has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by *{:.0%}*, from *{}* to *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"*Example: 150 200* (this will set the width to 150 and height to 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"2 will double the axis and 0.5 will halve the axis\\n\"\n#~ \"\\n\"\n#~ \"*Example: 2 0.5* (this will double \"\n#~ \"the horizontal axis and halve the \"\n#~ \"vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions *{}* are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file, horizontally by *{}* and vertically by *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of *{}* and height of *{}*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"*INSTANT VIEW* from below or refer \"\n#~ \"to [here](http://telegra.ph/Telegram-PDF-Bot-07-16)\"\n#~ \" for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"*See above for all the text in your PDF file*\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that\"\n#~ \" you'll like to keep. Use ⚡ \"\n#~ \"<b>INSTANT VIEW</b> from below or refer\"\n#~ \" to [here](http://telegra.ph/Telegram-PDF-\"\n#~ \"Bot-07-16) for some range examples.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback or /cancel \"\n#~ \"this action. Note that only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback, note that \"\n#~ \"only English feedback will be forwarded\"\n#~ \" to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the range of pages that you'll like to keep\\n\"\n#~ \"\\n\"\n#~ \"<b>General usage</b>\\n\"\n#~ \"<code>:      all pages</code>\\n\"\n#~ \"<code>22     just the 23rd page</code>\\n\"\n#~ \"<code>0:3    the first three pages</code>\\n\"\n#~ \"<code>:3     the first three pages</code>\\n\"\n#~ \"<code>5:     from the 6th page onwards</code>\\n\"\n#~ \"<code>-1     last page only</code>\\n\"\n#~ \"<code>:-1    all pages but the last page</code>\\n\"\n#~ \"<code>-2     second last page only</code>\\n\"\n#~ \"<code>-2:    last two pages</code>\\n\"\n#~ \"<code>-3:-1  third and second last pages only</code>\\n\"\n#~ \"\\n\"\n#~ \"<b>Advanced usage</b>\\n\"\n#~ \"<code>::2    pages 0 2 4 ... to the end</code>\\n\"\n#~ \"<code>1:10:2 pages 1 3 5 7 9</code>\\n\"\n#~ \"<code>::-1   all pages in reversed order</code>\\n\"\n#~ \"<code>3:0:-1 pages 3 2 1 but not 0</code>\\n\"\n#~ \"<code>2::-1  pages 2 1 0</code>\"\n#~ msgstr \"\"\n\n#~ msgid \"Set Language\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the amount that you'll like to support PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Awesome 🤩 (Custom)\"\n#~ msgstr \"\"\n\n#~ msgid \"The amount you sent is invalid, try again. {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the font or select\"\n#~ msgstr \"\"\n\n#~ msgid \"to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"Unknown font, please select a font from the list\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks 😁 ($1)\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee ☕ ($3)\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer 🍺 ($5)\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal 🍲 ($10)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Welcome to PDF Bot!\\n\"\n#~ \"\\n\"\n#~ \"<b>Key features:</b>\\n\"\n#~ \"- Compress, merge, preview, rename, \"\n#~ \"split and add watermark to PDF \"\n#~ \"files\\n\"\n#~ \"- Create PDF files from text messages\\n\"\n#~ \"- Extract images and text from PDF files\\n\"\n#~ \"- Convert PDF files into images\\n\"\n#~ \"- Convert webpages and images into PDF files\\n\"\n#~ \"- Beautify handwritten notes images into PDF files\\n\"\n#~ \"- <b><i>And more...</i></b>\\n\"\n#~ \"\\n\"\n#~ \"Type /help to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"You can perform most of the tasks\"\n#~ \" by sending me one of the \"\n#~ \"followings:\\n\"\n#~ \"- PDF files\\n\"\n#~ \"- Photos\\n\"\n#~ \"- Webpage links\\n\"\n#~ \"\\n\"\n#~ \"The rest of the tasks can be performed by using the commands below:\\n\"\n#~ \"/compare - compare PDF files\\n\"\n#~ \"/merge - merge PDF files\\n\"\n#~ \"/photo - convert and combine multiple photos into PDF files\\n\"\n#~ \"/text - create PDF files from text messages\\n\"\n#~ \"/watermark - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you sent is not a PDF file, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The PDF file you sent is too large for me to download\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file seems to be invalid and I couldn't open and read it\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {} PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is encrypted and you'll have to decrypt it first\\n\"\n#~ \"\\n\"\n#~ \"I've cancelled your action\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\\n\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me one of the PDF files that you'll like to compare\\n\"\n#~ \"\\n\"\n#~ \"Note that I can only look for differences in text\"\n#~ msgstr \"\"\n\n#~ msgid \"There are no differences in text between your PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the PDF files that you'll like to merge\\n\"\n#~ \"\\n\"\n#~ \"Note that the files will be merged in the order that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"The PDF file you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press <b>Done</b> if you've sent me \"\n#~ \"all the PDF files that you'll like\"\n#~ \" to merge or keep sending me \"\n#~ \"the PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"You've only sent me one PDF file.\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"I can't merge your PDF files as\"\n#~ \" I couldn't open and read \\\"{}\\\". \"\n#~ \"Ensure that it is not encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\\n\"\n#~ \"\\n\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"The file you've sent is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"The photo you've sent is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>{}</b> has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"skip to use the default font\\n\"\n#~ \"\\n\"\n#~ \"See here for the list of supported fonts:\"\n#~ msgstr \"\"\n\n#~ msgid \"File size reduced by <b>{:.0%}</b>, from <b>{}</b> to <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number between {} and\"\n#~ \" {}. This is the percentage of \"\n#~ \"margin space to retain between the \"\n#~ \"content in your PDF file and the\"\n#~ \" page\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me a number that you'll like\"\n#~ \" to adjust the margin size. Positive\"\n#~ \" numbers will decrease the margin \"\n#~ \"size and negative numbers will increase\"\n#~ \" it\"\n#~ msgstr \"\"\n\n#~ msgid \"The number must be between {} and {}, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and read it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, try to send it again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted with a method that I cannot decrypt\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your PDF file is too big for me to download\\n\"\n#~ \"\\n\"\n#~ \"I can't perform any tasks on it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your photo is too large for me \"\n#~ \"to download. I can't beautify or \"\n#~ \"convert your photo\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of the following characters:\\n\"\n#~ \"{}\\n\"\n#~ \"Send me another file name\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the width and height\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 150 200</b> (this will set\"\n#~ \" the width to 150 and height to\"\n#~ \" 200)\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the scaling factors for the horizontal and vertical axes\\n\"\n#~ \"\\n\"\n#~ \"<b>Example: 2 0.5</b> (this will double\"\n#~ \" the horizontal axis and halve the\"\n#~ \" vertical axis)\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions <b>{}</b> are invalid, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" <b>{}</b> and vertically by <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of <b>{}</b> and height of <b>{}</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"pages\"\n#~ msgstr \"\"\n\n#~ msgid \"to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"except\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid. Try again\"\n#~ msgstr \"\"\n\n#~ msgid \"<b>See above for all the text in your PDF file</b>\"\n#~ msgstr \"\"\n\n#~ msgid \"Type {} to see how to use PDF Bot\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - compare PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - merge PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - create PDF files from text messages\"\n#~ msgstr \"\"\n\n#~ msgid \"{} - add watermark to PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your language has been set to {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your {} PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Press {} if you've sent me all \"\n#~ \"the PDF files that you'll like to\"\n#~ \" merge or keep sending me the \"\n#~ \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for merging\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"{} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the font that you'll like\"\n#~ \" to use for the PDF file or \"\n#~ \"press {} to use the default font\"\n#~ msgstr \"\"\n\n#~ msgid \"See here for the list of supported fonts: {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 150 200\"\n#~ msgstr \"\"\n\n#~ msgid \"Example: 2 0.5\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      all pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}      page 8 only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    first three pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     from page 8 onward\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    all pages except the last page\"\n#~ msgstr \"\"\n\n#~ msgid \"{}     second last page only\"\n#~ msgstr \"\"\n\n#~ msgid \"{}    last two pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}  third and second last pages\"\n#~ msgstr \"\"\n\n#~ msgid \"{}   all pages in reversed order\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all the text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"You can perform most of the tasks by sending me one of the followings\"\n#~ msgstr \"\"\n\n#~ msgid \"The rest of the tasks can be performed by using the following commands\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file seems to be invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}    pages {results} and to the end\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range} pages {results} except {except_text}\"\n#~ msgstr \"\"\n\n#~ msgid \"{range}  pages {results}\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is too big for me to download\"\n#~ msgstr \"\"\n\n#~ msgid \"Say Thanks {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Coffee {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Beer {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Meal {emoji} ({value})\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to process, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"To Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"- Photos\"\n#~ msgstr \"\"\n\n#~ msgid \"{command} - convert and combine multiple photos into PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me the photos that you'll \"\n#~ \"like to beautify or convert into a\"\n#~ \" PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Note that the photos will be \"\n#~ \"beautified and converted in the order\"\n#~ \" that you send me\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a photo\"\n#~ msgstr \"\"\n\n#~ msgid \"photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task from below if \"\n#~ \"you've sent me all the photos, or\"\n#~ \" keep sending me the photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your photos into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"Your photo is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into photos\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any photos in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your photos\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your {file_type} PDF file is encrypted\"\n#~ \" and you'll have to decrypt it \"\n#~ \"first\"\n#~ msgstr \"\"\n\n#~ msgid \"watermark\"\n#~ msgstr \"\"\n\n#~ msgid \"PDF files\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is not a PDF file, \"\n#~ \"please try again and ensure that \"\n#~ \"your file has the .pdf extension\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file to black and white\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressing your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number must be between {min_percent}\"\n#~ \" and {max_percent}, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Cropping your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Decrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"The decryption password is incorrect, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Encrypting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Adding an OCR text layer to your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Renaming your PDF file into {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"Rotating your PDF file clockwise by {degree} degrees\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Scaling your PDF file, horizontally by\"\n#~ \" {horizontal} and vertically by {vertical}\"\n#~ msgstr \"\"\n\n#~ msgid \"Scaling your PDF file with width of {width} and height of {height}\"\n#~ msgstr \"\"\n\n#~ msgid \"Splitting your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Select how you'll like me to send the text to you\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting text from your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any text in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your image is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt image\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Testing\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this is a Telegram Bot\"\n#~ \" limitation and there's nothing I can\"\n#~ \" do unless Telegram changes this \"\n#~ \"limit\"\n#~ msgstr \"\"\n\n#~ msgid \"Remove Last File\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting a preview for your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your PDF file into images\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the result file format\"\n#~ msgstr \"\"\n\n#~ msgid \"Extracting all the images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't find any images in your PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"See above for all your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Your image is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"File name unavailable\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is not an image\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is too large for me to download and process\"\n#~ msgstr \"\"\n\n#~ msgid \"images\"\n#~ msgstr \"\"\n\n#~ msgid \"{file_name} has been removed for beautifying or converting\"\n#~ msgstr \"\"\n\n#~ msgid \"Beautifying and converting your images\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your images into PDF\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Send me your feedback (only English \"\n#~ \"feedback will be forwarded to my \"\n#~ \"developer)\"\n#~ msgstr \"\"\n\n#~ msgid \"Thank you for your feedback, I've already forwarded it to my developer\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Timed out processing your web page, \"\n#~ \"your web page is probably too \"\n#~ \"complex to process\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, please start over again\"\n#~ msgstr \"\"\n\n#~ msgid \"Your file is invalid and I couldn't open and process it\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is already encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted and you'll have to decrypt it first\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me these {file_type} so far:\"\n#~ msgstr \"\"\n\n#~ msgid \"The result file is too large for me to send to you\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The button has expired, please try \"\n#~ \"again with a new message/query then \"\n#~ \"press the new button\"\n#~ msgstr \"\"\n\n#~ msgid \"Invalid rotation degree, try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The scaling factors {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The dimensions {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the scaling factors for the horizontal and vertical axes\"\n#~ msgstr \"\"\n\n#~ msgid \"This will double the horizontal axis and halve the vertical axis\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me the width and height\"\n#~ msgstr \"\"\n\n#~ msgid \"This will set the width to 150 and height to 200\"\n#~ msgstr \"\"\n\n#~ msgid \"File names can't contain any of the following characters:\"\n#~ msgstr \"\"\n\n#~ msgid \"Please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"The range is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By scaling factor\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the scale type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"The values {values} are invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"By margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"Select the crop type that you'll like to perform\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"The number {number} is not between \"\n#~ \"{min_percent} and {max_percent}, please try\"\n#~ \" again\"\n#~ msgstr \"\"\n\n#~ msgid \"The number {number} is invalid, please try again\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number between {min_percent} and {max_percent}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"This is the percentage of margin \"\n#~ \"space to retain between the content \"\n#~ \"in your PDF file and the page\"\n#~ msgstr \"\"\n\n#~ msgid \"Send me a number that you'll like to adjust the margin size\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Positive numbers will decrease the \"\n#~ \"margin size and negative numbers will\"\n#~ \" increase it\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Select the task that you'll like \"\n#~ \"to perform from below or select \"\n#~ \"from the buttons\"\n#~ msgstr \"\"\n\n#~ msgid \"By Percentage\"\n#~ msgstr \"\"\n\n#~ msgid \"By Margin Size\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Images\"\n#~ msgstr \"\"\n\n#~ msgid \"Compressed\"\n#~ msgstr \"\"\n\n#~ msgid \"Images\"\n#~ msgstr \"\"\n\n#~ msgid \"To Dimensions\"\n#~ msgstr \"\"\n\n#~ msgid \"Extract Text\"\n#~ msgstr \"\"\n\n#~ msgid \"Text Message\"\n#~ msgstr \"\"\n\n#~ msgid \"Text File\"\n#~ msgstr \"\"\n\n#~ msgid \"Black & White\"\n#~ msgstr \"\"\n\n#~ msgid \"You've sent me this web page already and I'm still converting it\"\n#~ msgstr \"\"\n\n#~ msgid \"Converting your web page into a PDF file\"\n#~ msgstr \"\"\n\n#~ msgid \"Unable to reach your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Failed to convert your web page\"\n#~ msgstr \"\"\n\n#~ msgid \"Something went wrong, start over with your file or command\"\n#~ msgstr \"\"\n\n#~ msgid \"Your PDF file is encrypted\"\n#~ msgstr \"\"\n\n#~ msgid \"I couldn't merge your PDF files as this file is invalid: {file_name}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"File names can't contain any of \"\n#~ \"the following characters, please try \"\n#~ \"again:\\n\"\n#~ \"{invalid_chars}\"\n#~ msgstr \"\"\n\n#~ msgid \"\"\n#~ \"Your file is too large for me \"\n#~ \"to download and process, please try \"\n#~ \"again with a differnt file\\n\"\n#~ \"\\n\"\n#~ \"Note that this limit is enforced \"\n#~ \"by Telegram and there's nothing I \"\n#~ \"can do unless Telegram changes it\"\n#~ msgstr \"\"\n\n"
  },
  {
    "path": "pdf_bot/__init__.py",
    "content": ""
  },
  {
    "path": "pdf_bot/__main__.py",
    "content": "from typing import Any\n\nimport sentry_sdk\nfrom dependency_injector.providers import Singleton\nfrom dependency_injector.wiring import Provide, inject\nfrom loguru import logger\nfrom telegram.ext import Application as TelegramApp\n\nfrom pdf_bot.containers import Application\nfrom pdf_bot.error import ErrorHandler\nfrom pdf_bot.log import MyLogHandler\nfrom pdf_bot.settings import Settings\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\n\n\n@inject\ndef main(\n    telegram_app: TelegramApp,\n    settings: Settings | dict[str, Any] = Provide[Application.core.settings],\n    log_handler: MyLogHandler = Provide[Application.core.log_handler],\n) -> None:\n    log_handler.setup()\n\n    # There's a bug where configurations are passed as a dict, so we attempt to pass it\n    # here. See https://github.com/ets-labs/python-dependency-injector/issues/593\n    if isinstance(settings, dict):\n        settings = Settings(**settings)\n\n    if settings.sentry_dsn is not None:\n        sentry_sdk.init(settings.sentry_dsn, traces_sample_rate=0.8, profiles_sample_rate=0.8)\n    else:\n        logger.warning(\"SENTRY_DSN not set\")\n\n    if settings.app_url is not None:\n        telegram_app.run_webhook(\n            listen=\"0.0.0.0\",  # noqa: S104\n            port=settings.port,\n            url_path=settings.telegram_token,\n            webhook_url=f\"{settings.app_url}/{settings.telegram_token}\",\n        )\n    else:\n        telegram_app.run_polling()\n\n\nif __name__ == \"__main__\":\n    app = Application()\n    app.wire(modules=[__name__])\n\n    _telegram_app = (\n        TelegramApp.builder().bot(app.core.telegram_bot()).concurrent_updates(True).build()\n    )\n\n    # Dependency injectior only initialises the classes if they are referenced. Since\n    # the processors are not referenced anywhere, we need to explicitly initialise them\n    # so that they're registered under AbstractFileProcessor\n    for provider in app.processors.providers.values():  # type: ignore[attr-defined]\n        if isinstance(provider, Singleton):\n            provider()\n\n    # Similarly, initialise and register all the handlers for the bot\n    for provider in app.handlers.providers.values():  # type: ignore[attr-defined]\n        if isinstance(provider, Singleton):\n            handler = provider()\n            if isinstance(handler, AbstractTelegramHandler):\n                _telegram_app.add_handlers(handler.handlers)\n            elif isinstance(handler, ErrorHandler):\n                _telegram_app.add_error_handler(handler.callback)\n\n    main(_telegram_app)\n"
  },
  {
    "path": "pdf_bot/account/__init__.py",
    "content": "from .account_repository import AccountRepository\nfrom .account_service import AccountService\n\n__all__ = [\"AccountRepository\", \"AccountService\"]\n"
  },
  {
    "path": "pdf_bot/account/account_repository.py",
    "content": "from google.cloud.datastore import Client, Entity\n\nfrom pdf_bot.consts import LANGUAGE, USER\n\n\nclass AccountRepository:\n    def __init__(self, datastore_client: Client) -> None:\n        self.datastore_client = datastore_client\n\n    def get_user(self, user_id: int) -> Entity | None:\n        key = self.datastore_client.key(USER, user_id)\n        entity: Entity | None = self.datastore_client.get(key)\n\n        return entity\n\n    def upsert_user(self, user_id: int, language_code: str) -> None:\n        with self.datastore_client.transaction():\n            key = self.datastore_client.key(USER, user_id)\n            db_user = self.datastore_client.get(key)\n\n            if db_user is None:\n                db_user = Entity(key)\n            if LANGUAGE not in db_user:\n                db_user[LANGUAGE] = language_code\n\n            self.datastore_client.put(db_user)\n"
  },
  {
    "path": "pdf_bot/account/account_service.py",
    "content": "from telegram import User\n\nfrom pdf_bot.account.account_repository import AccountRepository\nfrom pdf_bot.language import LanguageService\n\n\nclass AccountService:\n    _LANGUAGE_CODE = \"en_GB\"\n\n    def __init__(\n        self, account_repository: AccountRepository, language_service: LanguageService\n    ) -> None:\n        self.account_repository = account_repository\n        self.language_service = language_service\n\n    def create_user(self, telegram_user: User) -> None:\n        user_lang_code = telegram_user.language_code\n        lang_code = self._LANGUAGE_CODE\n\n        if user_lang_code is not None and user_lang_code != \"en\":\n            code = self.language_service.get_language_code_from_short_code(user_lang_code)\n            if code is not None:\n                lang_code = code\n\n        self.account_repository.upsert_user(telegram_user.id, lang_code)\n"
  },
  {
    "path": "pdf_bot/analytics/__init__.py",
    "content": "from .analytics_repository import AnalyticsRepository\nfrom .analytics_service import AnalyticsService\nfrom .models import EventAction, TaskType\n\n__all__ = [\"AnalyticsRepository\", \"AnalyticsService\", \"EventAction\", \"TaskType\"]\n"
  },
  {
    "path": "pdf_bot/analytics/analytics_repository.py",
    "content": "from typing import Any\n\nfrom requests import Session\n\nfrom pdf_bot.settings import Settings\n\n\nclass AnalyticsRepository:\n    def __init__(self, api_client: Session, settings: Settings | dict[str, Any]) -> None:\n        self.api_client = api_client\n\n        # There's a bug where configurations are passed as a dict, so we attempt to pass\n        # it here. See https://github.com/ets-labs/python-dependency-injector/issues/593\n        if isinstance(settings, dict):\n            settings = Settings(**settings)\n\n        self.request_params = {\n            \"api_secret\": settings.ga_api_secret,\n            \"measurement_id\": settings.ga_measurement_id,\n        }\n\n    def send_event(self, event: dict[str, Any]) -> None:\n        self.api_client.post(\n            \"https://www.google-analytics.com/mp/collect\",\n            params=self.request_params,\n            json=event,\n            timeout=10,\n        )\n"
  },
  {
    "path": "pdf_bot/analytics/analytics_service.py",
    "content": "from typing import cast\nfrom uuid import UUID\n\nfrom loguru import logger\nfrom requests.exceptions import HTTPError\nfrom telegram import Message, Update, User\nfrom telegram.ext import ContextTypes\n\nfrom pdf_bot.language import LanguageService\n\nfrom .analytics_repository import AnalyticsRepository\nfrom .models import EventAction, TaskType\n\n\nclass AnalyticsService:\n    def __init__(\n        self,\n        analytics_repository: AnalyticsRepository,\n        language_service: LanguageService,\n    ) -> None:\n        self.analytics_repository = analytics_repository\n        self.language_service = language_service\n\n    def send_event(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        task_type: TaskType,\n        action: EventAction,\n    ) -> None:\n        lang = self.language_service.get_user_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        msg_user = cast(\"User\", msg.from_user)\n\n        event = {\n            \"client_id\": str(UUID(int=msg_user.id)),\n            \"user_properties\": {\"bot_language\": {\"value\": lang}},\n            \"events\": [\n                {\n                    \"name\": task_type.value,\n                    \"params\": {\"action\": action.value},\n                }\n            ],\n        }\n\n        try:\n            self.analytics_repository.send_event(event)\n        except HTTPError:\n            logger.exception(\"Failed to send analytics\")\n"
  },
  {
    "path": "pdf_bot/analytics/models.py",
    "content": "from enum import Enum\n\n\nclass TaskType(Enum):\n    beautify_image = \"beautify_image\"\n    compare_pdf = \"compare_pdf\"\n    compress_pdf = \"compress_pdf\"\n    crop_pdf = \"crop_pdf\"\n    decrypt_pdf = \"decrypt_pdf\"\n    encrypt_pdf = \"encrypt_pdf\"\n    get_pdf_image = \"get_pdf_image\"\n    get_pdf_text = \"get_pdf_text\"\n    grayscale_pdf = \"grayscale_pdf\"\n    image_to_pdf = \"image_to_pdf\"\n    merge_pdf = \"merge_pdf\"\n    ocr_pdf = \"ocr_pdf\"\n    pdf_to_image = \"pdf_to_image\"\n    preview_pdf = \"preview_pdf\"\n    rename_pdf = \"rename_pdf\"\n    rotate_pdf = \"rotate_pdf\"\n    scale_pdf = \"scale_pdf\"\n    split_pdf = \"split_pdf\"\n    text_to_pdf = \"text_to_pdf\"\n    url_to_pdf = \"url_to_pdf\"\n    watermark_pdf = \"watermark_pdf\"\n\n\nclass EventAction(Enum):\n    complete = \"complete\"\n"
  },
  {
    "path": "pdf_bot/cli/__init__.py",
    "content": "from .cli_service import CLIService\nfrom .exceptions import CLIServiceError\n\n__all__ = [\"CLIService\", \"CLIServiceError\"]\n"
  },
  {
    "path": "pdf_bot/cli/cli_service.py",
    "content": "import shlex\nfrom gettext import gettext as _\nfrom pathlib import Path\nfrom subprocess import PIPE, Popen\n\nfrom loguru import logger\n\nfrom pdf_bot.cli.exceptions import CLINonZeroExitStatusError\n\n\nclass CLIService:\n    def compress_pdf(self, input_path: Path, output_path: Path) -> None:\n        command = (\n            \"gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default \"\n            f'-dNOPAUSE -dQUIET -dBATCH -sOutputFile=\"{output_path}\" \"{input_path}\"'\n        )\n        self._run_command(command)\n\n    def extract_pdf_images(self, input_path: Path, output_path: Path) -> None:\n        command = f'pdfimages -png \"{input_path}\" \"{output_path}/images\"'\n        self._run_command(command)\n\n    @staticmethod\n    def _run_command(command: str) -> None:\n        proc = Popen(shlex.split(command), stdout=PIPE, stderr=PIPE, shell=False)\n        out, err = proc.communicate()\n\n        if proc.returncode != 0:\n            logger.error(\n                \"Command:\\n{command}\\n\\nStdout:\\n{stdout}\\n\\nStderr:\\n{stderr}\",\n                command=command,\n                stdout=out.decode(\"utf-8\"),\n                stderr=err.decode(\"utf-8\"),\n            )\n            raise CLINonZeroExitStatusError(_(\"Failed to complete process\"))\n"
  },
  {
    "path": "pdf_bot/cli/exceptions.py",
    "content": "class CLIServiceError(Exception):\n    pass\n\n\nclass CLINonZeroExitStatusError(CLIServiceError):\n    pass\n"
  },
  {
    "path": "pdf_bot/command/__init__.py",
    "content": "from .command_handler import MyCommandHandler\nfrom .command_service import CommandService\n\n__all__ = [\"CommandService\", \"MyCommandHandler\"]\n"
  },
  {
    "path": "pdf_bot/command/command_handler.py",
    "content": "from telegram.ext import BaseHandler, CommandHandler, filters\n\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\n\nfrom .command_service import CommandService\n\n\nclass MyCommandHandler(AbstractTelegramHandler):\n    _START_COMMAND = \"start\"\n    _HELP_COMMAND = \"help\"\n    _SEND_COMMAND = \"send\"\n\n    def __init__(self, command_service: CommandService, admin_telegram_id: int) -> None:\n        self.command_service = command_service\n        self.admin_telegram_id = admin_telegram_id\n\n    @property\n    def handlers(self) -> list[BaseHandler]:\n        return [\n            CommandHandler(self._START_COMMAND, self.command_service.send_start_message),\n            CommandHandler(self._HELP_COMMAND, self.command_service.send_help_message),\n            CommandHandler(\n                self._SEND_COMMAND,\n                self.command_service.send_message_to_user,\n                filters.User(self.admin_telegram_id),\n            ),\n        ]\n"
  },
  {
    "path": "pdf_bot/command/command_service.py",
    "content": "from typing import cast\n\nfrom telegram import InlineKeyboardButton, InlineKeyboardMarkup, Message, Update, User\nfrom telegram.constants import ChatAction, ParseMode\nfrom telegram.error import Forbidden\nfrom telegram.ext import ContextTypes\n\nfrom pdf_bot.account.account_service import AccountService\nfrom pdf_bot.consts import CHANNEL_NAME\nfrom pdf_bot.language import LanguageService, SetLanguageData\nfrom pdf_bot.models import SupportData\n\n\nclass CommandService:\n    def __init__(self, account_service: AccountService, language_service: LanguageService) -> None:\n        self.account_service = account_service\n        self.language_service = language_service\n\n    async def send_start_message(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:\n        msg = cast(\"Message\", update.effective_message)\n        msg_user = cast(\"User\", msg.from_user)\n        await msg.reply_chat_action(ChatAction.TYPING)\n\n        # Create the user entity in Datastore\n        self.account_service.create_user(msg_user)\n\n        _ = self.language_service.set_app_language(update, context)\n        await msg.reply_text(\n            \"{welcome}\\n\\n<b>{key_features}</b>\\n\"\n            \"{features_summary}\\n\"\n            \"{pdf_from_text}\\n\"\n            \"{extract_pdf}\\n\"\n            \"{convert_to_images}\\n\"\n            \"{convert_to_pdf}\\n\"\n            \"{beautify}\\n\"\n            \"<b><i>{and_more}</i></b>\\n\\n\"\n            \"{see_usage}\".format(\n                welcome=_(\"Welcome to PDF Bot!\"),\n                key_features=_(\"Key features:\"),\n                features_summary=_(\n                    \"- Compress, merge, preview, rename, split and add watermark to PDF files\"\n                ),\n                pdf_from_text=_(\"- Create PDF files from text messages\"),\n                extract_pdf=_(\"- Extract images and text from PDF files\"),\n                convert_to_images=_(\"- Convert PDF files into images\"),\n                convert_to_pdf=_(\"- Convert webpages and images into PDF files\"),\n                beautify=_(\"- Beautify handwritten notes images into PDF files\"),\n                and_more=_(\"- And more...\"),\n                see_usage=_(\"Type {command} to see how to use PDF Bot\").format(command=\"/help\"),\n            ),\n            parse_mode=ParseMode.HTML,\n        )\n\n    async def send_help_message(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        keyboard = [\n            [InlineKeyboardButton(_(\"Set Language 🌎\"), callback_data=SetLanguageData())],\n            [\n                InlineKeyboardButton(_(\"Join Channel\"), f\"https://t.me/{CHANNEL_NAME}\"),\n                InlineKeyboardButton(_(\"Support PDF Bot\"), callback_data=SupportData()),\n            ],\n        ]\n        reply_markup = InlineKeyboardMarkup(keyboard)\n\n        await msg.reply_text(\n            \"{desc_1}\\n{pdf_files}\\n{images}\\n{webpage_links}\\n\\n{desc_2}\\n\"\n            \"{compare_desc}\\n{merge_desc}\\n{image_desc}\\n{text_desc}\\n\"\n            \"{watermark_desc}\".format(\n                desc_1=_(\"You can perform most of the tasks by sending me one of the followings:\"),\n                pdf_files=_(\"- PDF files\"),\n                images=_(\"- Images\"),\n                webpage_links=_(\"- Webpage links\"),\n                desc_2=_(\"The rest of the tasks can be performed by using the following commands:\"),\n                compare_desc=_(\"{command} - compare PDF files\").format(command=\"/compare\"),\n                merge_desc=_(\"{command} - merge PDF files\").format(command=\"/merge\"),\n                image_desc=_(\n                    \"{command} - convert and combine multiple images into PDF files\"\n                ).format(command=\"/image\"),\n                text_desc=_(\"{command} - create PDF files from text messages\").format(\n                    command=\"/text\"\n                ),\n                watermark_desc=_(\"{command} - add watermark to PDF files\").format(\n                    command=\"/watermark\"\n                ),\n            ),\n            reply_markup=reply_markup,\n        )\n\n    async def send_message_to_user(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> None:\n        msg = cast(\"Message\", update.effective_message)\n        args = context.args\n\n        if args is not None:\n            user_id = int(args[0])\n            text = \" \".join(args[1:])\n\n            try:\n                await context.bot.send_message(user_id, text)\n                await msg.reply_text(\"Message sent\")\n            except Forbidden:\n                await msg.reply_text(\"Bot is blocked by the user\")\n        else:\n            await msg.reply_text(f\"Invalid arguments: {args}\")\n"
  },
  {
    "path": "pdf_bot/compare/__init__.py",
    "content": "from .compare_handler import CompareHandler\nfrom .compare_service import CompareService\n\n__all__ = [\"CompareHandler\", \"CompareService\"]\n"
  },
  {
    "path": "pdf_bot/compare/compare_handler.py",
    "content": "from telegram.ext import BaseHandler, CommandHandler, ConversationHandler, MessageHandler, filters\n\nfrom pdf_bot.consts import TEXT_FILTER\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\nfrom pdf_bot.telegram_internal import TelegramService\n\nfrom .compare_service import CompareService\n\n\nclass CompareHandler(AbstractTelegramHandler):\n    _COMPARE_COMMAND = \"compare\"\n\n    def __init__(self, compare_service: CompareService, telegram_service: TelegramService) -> None:\n        self.compare_service = compare_service\n        self.telegram_service = telegram_service\n\n    @property\n    def handlers(self) -> list[BaseHandler]:\n        return [\n            ConversationHandler(\n                entry_points=[\n                    CommandHandler(self._COMPARE_COMMAND, self.compare_service.ask_first_pdf)\n                ],\n                states={\n                    CompareService.WAIT_FIRST_PDF: [\n                        MessageHandler(filters.Document.PDF, self.compare_service.check_first_pdf)\n                    ],\n                    CompareService.WAIT_SECOND_PDF: [\n                        MessageHandler(filters.Document.PDF, self.compare_service.compare_pdfs)\n                    ],\n                },\n                fallbacks=[\n                    CommandHandler(\"cancel\", self.telegram_service.cancel_conversation),\n                    MessageHandler(TEXT_FILTER, self.compare_service.check_text),\n                ],\n                allow_reentry=True,\n            )\n        ]\n"
  },
  {
    "path": "pdf_bot/compare/compare_service.py",
    "content": "from typing import cast\n\nfrom pdf_diff import NoDifferenceError\nfrom telegram import Message, ReplyKeyboardMarkup, ReplyKeyboardRemove, Update\nfrom telegram.ext import ContextTypes, ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.consts import BACK, CANCEL\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.telegram_internal import (\n    TelegramGetUserDataError,\n    TelegramService,\n    TelegramServiceError,\n)\n\n\nclass CompareService:\n    WAIT_FIRST_PDF = 0\n    WAIT_SECOND_PDF = 1\n    _COMPARE_ID = \"compare_id\"\n\n    def __init__(\n        self,\n        pdf_service: PdfService,\n        telegram_service: TelegramService,\n        language_service: LanguageService,\n    ) -> None:\n        self.pdf_service = pdf_service\n        self.telegram_service = telegram_service\n        self.language_service = language_service\n\n    async def ask_first_pdf(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        reply_markup = ReplyKeyboardMarkup(\n            [[_(CANCEL)]], resize_keyboard=True, one_time_keyboard=True\n        )\n        await msg.reply_text(\n            \"{desc_1}\\n\\n{desc_2}\".format(\n                desc_1=_(\"Send me one of the PDF files that you'll like to compare\"),\n                desc_2=_(\"Note that I can only look for text differences\"),\n            ),\n            reply_markup=reply_markup,\n        )\n\n        return self.WAIT_FIRST_PDF\n\n    async def check_first_pdf(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n\n        try:\n            doc = self.telegram_service.check_pdf_document(msg)\n        except TelegramServiceError as e:\n            await msg.reply_text(_(str(e)))\n            return self.WAIT_FIRST_PDF\n\n        self.telegram_service.update_user_data(context, self._COMPARE_ID, doc.file_id)\n        reply_markup = ReplyKeyboardMarkup(\n            [[_(BACK), _(CANCEL)]], resize_keyboard=True, one_time_keyboard=True\n        )\n        await msg.reply_text(\n            _(\"Send me the other PDF file that you'll like to compare\"),\n            reply_markup=reply_markup,\n        )\n\n        return self.WAIT_SECOND_PDF\n\n    async def compare_pdfs(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n\n        try:\n            doc = self.telegram_service.check_pdf_document(msg)\n            file_id = self.telegram_service.get_user_data(context, self._COMPARE_ID)\n        except TelegramServiceError as e:\n            await msg.reply_text(_(str(e)))\n            if isinstance(e, TelegramGetUserDataError):\n                return ConversationHandler.END\n            return self.WAIT_SECOND_PDF\n\n        await msg.reply_text(_(\"Comparing your PDF files\"), reply_markup=ReplyKeyboardRemove())\n\n        try:\n            async with self.pdf_service.compare_pdfs(file_id, doc.file_id) as out_path:\n                await self.telegram_service.send_file(\n                    update, context, out_path, TaskType.compare_pdf\n                )\n        except NoDifferenceError:\n            await msg.reply_text(_(\"There are no text differences between your PDF files\"))\n\n        return ConversationHandler.END\n\n    async def check_text(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int | None:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        text = msg.text\n\n        if text == _(BACK):\n            return await self.ask_first_pdf(update, context)\n        if text == _(CANCEL):\n            return await self.telegram_service.cancel_conversation(update, context)\n\n        return None\n"
  },
  {
    "path": "pdf_bot/consts.py",
    "content": "from gettext import gettext as _\n\nfrom telegram.ext import filters\n\nTEXT_FILTER = filters.TEXT & ~filters.COMMAND\n\n# Bot constants\nCHANNEL_NAME = \"pdf2botdev\"\n\n# Keyboard constants\nCANCEL = _(\"Cancel\")\nDONE = _(\"Done\")\nBACK = _(\"Back\")\n\n# User data constants\nFILE_DATA = \"file_data\"\nMESSAGE_DATA = \"message_data\"\n\n# Datastore constants\nUSER = \"User\"\nLANGUAGE = \"language\"\n\nGENERIC_ERROR = _(\"Something went wrong, start over with your file or command\")\n"
  },
  {
    "path": "pdf_bot/containers.py",
    "content": "from dependency_injector import containers, providers\nfrom requests import Session\nfrom slack_sdk import WebClient as SlackClient\nfrom telegram.ext import AIORateLimiter, ExtBot\nfrom telegram.request import HTTPXRequest\n\nfrom pdf_bot.account import AccountRepository, AccountService\nfrom pdf_bot.analytics import AnalyticsRepository, AnalyticsService\nfrom pdf_bot.cli import CLIService\nfrom pdf_bot.command import CommandService, MyCommandHandler\nfrom pdf_bot.compare import CompareHandler, CompareService\nfrom pdf_bot.datastore import MyDatastoreClient\nfrom pdf_bot.error import ErrorCallbackQueryHandler, ErrorHandler, ErrorService\nfrom pdf_bot.feedback import FeedbackHandler, FeedbackRepository, FeedbackService\nfrom pdf_bot.file import FileHandler, FileService\nfrom pdf_bot.image import ImageService\nfrom pdf_bot.image_handler import BatchImageHandler, BatchImageService\nfrom pdf_bot.image_processor import BeautifyImageProcessor, ImageTaskProcessor, ImageToPdfProcessor\nfrom pdf_bot.io_internal import IOService\nfrom pdf_bot.language import LanguageHandler, LanguageRepository, LanguageService\nfrom pdf_bot.log import InterceptLoggingHandler, MyLogHandler\nfrom pdf_bot.merge import MergeHandler, MergeService\nfrom pdf_bot.payment import PaymentHandler, PaymentService\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import (\n    CompressPdfProcessor,\n    CropPdfProcessor,\n    DecryptPdfProcessor,\n    EncryptPdfProcessor,\n    ExtractPdfImageProcessor,\n    ExtractPdfTextProcessor,\n    GrayscalePdfProcessor,\n    OcrPdfProcessor,\n    PdfTaskProcessor,\n    PdfToImageProcessor,\n    PreviewPdfProcessor,\n    RenamePdfProcessor,\n    RotatePdfProcessor,\n    ScalePdfProcessor,\n    SplitPdfProcessor,\n)\nfrom pdf_bot.settings import Settings\nfrom pdf_bot.telegram_internal import TelegramService\nfrom pdf_bot.text import TextHandler, TextRepository, TextService\nfrom pdf_bot.watermark import WatermarkHandler, WatermarkService\nfrom pdf_bot.webpage import WebpageHandler, WebpageService\n\n\nclass Core(containers.DeclarativeContainer):\n    settings = providers.Configuration(pydantic_settings=[Settings()])\n\n    _bot_request = providers.Singleton(\n        HTTPXRequest,\n        connection_pool_size=settings.request_connection_pool_size,\n        read_timeout=settings.request_read_timeout,\n        write_timeout=settings.request_write_timeout,\n        connect_timeout=settings.request_connect_timeout,\n        pool_timeout=settings.request_pool_timeout,\n    )\n    _bot_rate_limiter = providers.Singleton(\n        AIORateLimiter, max_retries=settings.telegram_max_retries\n    )\n\n    telegram_bot = providers.Singleton(\n        ExtBot,\n        token=settings.telegram_token,\n        arbitrary_callback_data=True,\n        request=_bot_request,\n        rate_limiter=_bot_rate_limiter,\n    )\n\n    intercept_logging_handler = providers.Singleton(InterceptLoggingHandler)\n    log_handler = providers.Singleton(\n        MyLogHandler, intercept_logging_handler=intercept_logging_handler\n    )\n\n\nclass Clients(containers.DeclarativeContainer):\n    _settings = providers.Configuration(pydantic_settings=[Settings()])\n\n    _session = Session()\n    _session.hooks = {  # noqa: RUF012\n        \"response\": lambda r, *_args, **_kwargs: r.raise_for_status()  # pragma: no cover\n    }\n\n    api = providers.Object(_session)\n    datastore = providers.Singleton(MyDatastoreClient, _settings.gcp_service_account)\n    slack = providers.Singleton(SlackClient, token=_settings.slack_token)\n\n\nclass Repositories(containers.DeclarativeContainer):\n    _settings = providers.Configuration(pydantic_settings=[Settings()])\n    clients = providers.DependenciesContainer()\n\n    account = providers.Singleton(AccountRepository, datastore_client=clients.datastore)\n    analytics = providers.Singleton(AnalyticsRepository, api_client=clients.api, settings=_settings)\n    feedback = providers.Singleton(FeedbackRepository, slack_client=clients.slack)\n    language = providers.Singleton(LanguageRepository, datastore_client=clients.datastore)\n    text = providers.Singleton(\n        TextRepository,\n        api_client=clients.api,\n        google_fonts_token=_settings.google_fonts_token,\n    )\n\n\nclass Services(containers.DeclarativeContainer):\n    _settings = providers.Configuration(pydantic_settings=[Settings()])\n    core = providers.DependenciesContainer()\n    repositories = providers.DependenciesContainer()\n\n    cli = providers.Singleton(CLIService)\n    io = providers.Singleton(IOService)\n\n    language = providers.Singleton(LanguageService, language_repository=repositories.language)\n\n    account = providers.Singleton(\n        AccountService,\n        account_repository=repositories.account,\n        language_service=language,\n    )\n    analytics = providers.Singleton(\n        AnalyticsService,\n        analytics_repository=repositories.analytics,\n        language_service=language,\n    )\n    command = providers.Singleton(\n        CommandService, account_service=account, language_service=language\n    )\n    error = providers.Singleton(ErrorService, language_service=language)\n    telegram = providers.Singleton(\n        TelegramService,\n        io_service=io,\n        language_service=language,\n        analytics_service=analytics,\n        bot=core.telegram_bot,\n    )\n\n    image = providers.Singleton(\n        ImageService, cli_service=cli, io_service=io, telegram_service=telegram\n    )\n    pdf = providers.Singleton(PdfService, cli_service=cli, io_service=io, telegram_service=telegram)\n\n    _image_task = providers.Singleton(ImageTaskProcessor, language_service=language)\n    _pdf_task = providers.Singleton(PdfTaskProcessor, language_service=language)\n    file = providers.Singleton(\n        FileService,\n        telegram_service=telegram,\n        language_service=language,\n        image_task_processor=_image_task,\n        pdf_task_processor=_pdf_task,\n    )\n\n    compare = providers.Singleton(\n        CompareService,\n        pdf_service=pdf,\n        telegram_service=telegram,\n        language_service=language,\n    )\n    feedback = providers.Singleton(\n        FeedbackService,\n        feedback_repository=repositories.feedback,\n        telegram_service=telegram,\n        language_service=language,\n    )\n    batch_image = providers.Singleton(\n        BatchImageService,\n        image_service=image,\n        telegram_service=telegram,\n        language_service=language,\n    )\n\n    merge = providers.Singleton(\n        MergeService,\n        pdf_service=pdf,\n        telegram_service=telegram,\n        language_service=language,\n    )\n    payment = providers.Singleton(\n        PaymentService,\n        language_service=language,\n        telegram_service=telegram,\n        stripe_token=_settings.stripe_token,\n    )\n    text = providers.Singleton(\n        TextService,\n        text_repository=repositories.text,\n        pdf_service=pdf,\n        telegram_service=telegram,\n        language_service=language,\n    )\n    watermark = providers.Singleton(\n        WatermarkService,\n        pdf_service=pdf,\n        telegram_service=telegram,\n        language_service=language,\n    )\n    webpage = providers.Singleton(\n        WebpageService,\n        io_service=io,\n        telegram_service=telegram,\n        language_service=language,\n    )\n\n\nclass Processors(containers.DeclarativeContainer):\n    services = providers.DependenciesContainer()\n\n    compress = providers.Singleton(\n        CompressPdfProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    crop = providers.Singleton(\n        CropPdfProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    decrypt = providers.Singleton(\n        DecryptPdfProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    encrypt = providers.Singleton(\n        EncryptPdfProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    extract_image = providers.Singleton(\n        ExtractPdfImageProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    extract_text = providers.Singleton(\n        ExtractPdfTextProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    grayscale = providers.Singleton(\n        GrayscalePdfProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    ocr = providers.Singleton(\n        OcrPdfProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    pdf_to_image = providers.Singleton(\n        PdfToImageProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    preview_pdf = providers.Singleton(\n        PreviewPdfProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    rename = providers.Singleton(\n        RenamePdfProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    rotate = providers.Singleton(\n        RotatePdfProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    scale = providers.Singleton(\n        ScalePdfProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    split = providers.Singleton(\n        SplitPdfProcessor,\n        pdf_service=services.pdf,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n\n    beautify = providers.Singleton(\n        BeautifyImageProcessor,\n        image_service=services.image,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n    image_to_pdf = providers.Singleton(\n        ImageToPdfProcessor,\n        image_service=services.image,\n        telegram_service=services.telegram,\n        language_service=services.language,\n    )\n\n\nclass Handlers(containers.DeclarativeContainer):\n    _settings = providers.Configuration(pydantic_settings=[Settings()])\n    services = providers.DependenciesContainer()\n\n    error = providers.Singleton(ErrorHandler, language_service=services.language)\n\n    # Make sure payment handler comes first as it contains handlers that need to be\n    # prioritised\n    payment = providers.Singleton(PaymentHandler, payment_service=services.payment)\n    command = providers.Singleton(\n        MyCommandHandler,\n        command_service=services.command,\n        admin_telegram_id=_settings.admin_telegram_id,\n    )\n    language = providers.Singleton(LanguageHandler, language_service=services.language)\n\n    # Make sure webpage handler comes before the file processors to capture the URLs\n    webpage = providers.Singleton(WebpageHandler, webpage_service=services.webpage)\n\n    compare = providers.Singleton(\n        CompareHandler,\n        compare_service=services.compare,\n        telegram_service=services.telegram,\n    )\n    feedback = providers.Singleton(\n        FeedbackHandler,\n        feedback_service=services.feedback,\n        telegram_service=services.telegram,\n    )\n    image = providers.Singleton(\n        BatchImageHandler,\n        batch_image_service=services.batch_image,\n        telegram_service=services.telegram,\n    )\n    merge = providers.Singleton(\n        MergeHandler, merge_service=services.merge, telegram_service=services.telegram\n    )\n    text = providers.Singleton(\n        TextHandler, text_service=services.text, telegram_service=services.telegram\n    )\n    watermark = providers.Singleton(\n        WatermarkHandler,\n        watermark_service=services.watermark,\n        telegram_service=services.telegram,\n    )\n\n    # Make sure the file handler comes after the other file related file handlers\n    # so that it doesn't take over when those handlers are expecting a file\n    file = providers.Singleton(\n        FileHandler, file_service=services.file, telegram_service=services.telegram\n    )\n\n    # This is the catch all callback query handler so make sure it comes last\n    error_callback_query = providers.Singleton(\n        ErrorCallbackQueryHandler, error_service=services.error\n    )\n\n\nclass Application(containers.DeclarativeContainer):\n    core = providers.Container(Core)\n    clients = providers.Container(Clients)\n    repositories = providers.Container(Repositories, clients=clients)\n    services = providers.Container(Services, core=core, repositories=repositories)\n    processors = providers.Container(Processors, services=services)\n    handlers = providers.Container(Handlers, services=services)\n"
  },
  {
    "path": "pdf_bot/datastore/__init__.py",
    "content": "from .datastore_client import MyDatastoreClient\n\n__all__ = [\"MyDatastoreClient\"]\n"
  },
  {
    "path": "pdf_bot/datastore/datastore_client.py",
    "content": "from google.cloud.datastore import Client\nfrom google.oauth2.service_account import Credentials\n\n\nclass MyDatastoreClient(Client):\n    def __init__(self, service_account_dict: dict) -> None:\n        credentials = Credentials.from_service_account_info(service_account_dict)\n        super().__init__(credentials=credentials)\n"
  },
  {
    "path": "pdf_bot/error/__init__.py",
    "content": "from .error_callback_query_handler import ErrorCallbackQueryHandler\nfrom .error_handler import ErrorHandler\nfrom .error_service import ErrorService\n\n__all__ = [\"ErrorCallbackQueryHandler\", \"ErrorHandler\", \"ErrorService\"]\n"
  },
  {
    "path": "pdf_bot/error/error_callback_query_handler.py",
    "content": "from telegram.ext import BaseHandler, CallbackQueryHandler\n\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\n\nfrom .error_service import ErrorService\n\n\nclass ErrorCallbackQueryHandler(AbstractTelegramHandler):\n    def __init__(self, error_service: ErrorService) -> None:\n        self.error_service = error_service\n\n    @property\n    def handlers(self) -> list[BaseHandler]:\n        return [CallbackQueryHandler(self.error_service.process_unknown_callback_query)]\n"
  },
  {
    "path": "pdf_bot/error/error_handler.py",
    "content": "from contextlib import suppress\nfrom gettext import gettext as _\n\nimport sentry_sdk\nfrom loguru import logger\nfrom telegram import Update\nfrom telegram.error import BadRequest, Forbidden\nfrom telegram.ext import ContextTypes\n\nfrom pdf_bot.language import LanguageService\n\n\nclass ErrorHandler:\n    def __init__(self, language_service: LanguageService) -> None:\n        self.language_service = language_service\n\n    async def callback(self, update: object, context: ContextTypes.DEFAULT_TYPE) -> None:\n        if context.error is None:\n            return\n\n        if not isinstance(update, Update):\n            logger.exception(\n                \"Something went wrong without an Update instance\", exc_info=context.error\n            )\n            sentry_sdk.capture_exception(context.error)\n            return\n\n        await self._handle_error(update, context)\n\n    async def _handle_error(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:\n        try:\n            raise context.error  # type: ignore[misc] # noqa: TRY301\n        except Forbidden:\n            pass\n        except BadRequest as e:\n            await self._handle_bad_request(update, context, e)\n        except Exception as e:  # noqa: BLE001\n            await self._send_message(update, context, _(\"Something went wrong, please try again\"))\n            sentry_sdk.capture_exception(e)\n\n    async def _handle_bad_request(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE, error: BadRequest\n    ) -> None:\n        err_text = _(\"Something went wrong, please try again\")\n        err_msg = error.message.lower()\n\n        if err_msg.startswith(\n            (\n                \"message is not modified\",\n                \"need administrator rights\",\n                \"message to delete not found\",\n                \"message to edit not found\",\n            )\n        ):\n            return\n\n        if err_msg.startswith(\"query is too old and response timeout expired\"):\n            err_text = _(\"The button has expired, start over with your file or command\")\n        elif err_msg.startswith(\"photo_invalid_dimensions\"):\n            err_text = _(\"The resulted image is invalid, try again\")\n        elif not err_msg.startswith(\"file must be non-empty\"):\n            sentry_sdk.capture_exception(error)\n\n        await self._send_message(update, context, err_text)\n\n    async def _send_message(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE, text: str\n    ) -> None:\n        chat_id = None\n        if update.effective_message is not None:\n            chat_id = update.effective_message.chat_id\n        elif update.effective_chat is not None:\n            chat_id = update.effective_chat.id\n\n        if chat_id is None:\n            return\n\n        with suppress(Exception):\n            _ = self.language_service.set_app_language(update, context)\n            await context.bot.send_message(chat_id, _(text))\n"
  },
  {
    "path": "pdf_bot/error/error_service.py",
    "content": "from typing import cast\n\nfrom telegram import CallbackQuery, Message, Update\nfrom telegram.ext import ContextTypes\n\nfrom pdf_bot.language import LanguageService\n\n\nclass ErrorService:\n    def __init__(self, language_service: LanguageService) -> None:\n        self.language_service = language_service\n\n    async def process_unknown_callback_query(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> None:\n        _ = self.language_service.set_app_language(update, context)\n        text = _(\"The button has expired, start over with your file or command\")\n\n        query = cast(\"CallbackQuery\", update.callback_query)\n        await query.answer(text)\n\n        message = cast(\"Message\", update.effective_message)\n        await message.reply_text(text)\n"
  },
  {
    "path": "pdf_bot/errors.py",
    "content": "from typing import Any\n\nfrom pdf_bot.models import FileData\n\n\nclass FileDataTypeError(Exception):\n    def __init__(self, file_data: FileData, *args: object) -> None:\n        msg = f\"Invalid file data type: {type(file_data)}\"\n        super().__init__(msg, *args)\n\n\nclass CallbackQueryDataTypeError(Exception):\n    def __init__(self, data: Any, *args: object) -> None:\n        msg = f\"Invalid callback query data type: {type(data)}\"\n        super().__init__(msg, *args)\n\n\nclass UserIdError(Exception):\n    pass\n"
  },
  {
    "path": "pdf_bot/feedback/__init__.py",
    "content": "from .feedback_handler import FeedbackHandler\nfrom .feedback_repository import FeedbackRepository\nfrom .feedback_service import FeedbackService\n\n__all__ = [\"FeedbackHandler\", \"FeedbackRepository\", \"FeedbackService\"]\n"
  },
  {
    "path": "pdf_bot/feedback/feedback_handler.py",
    "content": "from telegram.ext import BaseHandler, CommandHandler, ConversationHandler, MessageHandler\n\nfrom pdf_bot.consts import TEXT_FILTER\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\nfrom pdf_bot.telegram_internal.telegram_service import TelegramService\n\nfrom .feedback_service import FeedbackService\n\n\nclass FeedbackHandler(AbstractTelegramHandler):\n    _FEEDBACK_COMMAND = \"feedback\"\n\n    def __init__(\n        self,\n        feedback_service: FeedbackService,\n        telegram_service: TelegramService,\n    ) -> None:\n        self.feedback_service = feedback_service\n        self.telegram_service = telegram_service\n\n    @property\n    def handlers(self) -> list[BaseHandler]:\n        return [\n            ConversationHandler(\n                entry_points=[\n                    CommandHandler(self._FEEDBACK_COMMAND, self.feedback_service.ask_feedback)\n                ],\n                states={\n                    FeedbackService.WAIT_FEEDBACK: [\n                        MessageHandler(TEXT_FILTER, self.feedback_service.check_text)\n                    ]\n                },\n                fallbacks=[CommandHandler(\"cancel\", self.telegram_service.cancel_conversation)],\n            )\n        ]\n"
  },
  {
    "path": "pdf_bot/feedback/feedback_repository.py",
    "content": "from loguru import logger\nfrom sentry_sdk import capture_exception\nfrom slack_sdk import WebClient\nfrom slack_sdk.errors import SlackApiError\n\n\nclass FeedbackRepository:\n    _SLACK_CHANNEL = \"#pdf-bot-feedback\"\n\n    def __init__(self, slack_client: WebClient) -> None:\n        self.slack_client = slack_client\n\n    def save_feedback(self, chat_id: int, username: str, feedback: str) -> None:\n        try:\n            text = f\"Feedback received from @{username} ({chat_id}):\\n\\n{feedback}\"\n            self.slack_client.chat_postMessage(channel=self._SLACK_CHANNEL, text=text)\n        except SlackApiError as e:\n            logger.exception(\"Failed to send feedback to Slack\")\n            capture_exception(e)\n"
  },
  {
    "path": "pdf_bot/feedback/feedback_service.py",
    "content": "from typing import cast\n\nfrom langdetect import detect\nfrom telegram import Message, Update, User\nfrom telegram.ext import ContextTypes, ConversationHandler\n\nfrom pdf_bot.consts import CANCEL\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.telegram_internal.telegram_service import TelegramService\n\nfrom .feedback_repository import FeedbackRepository\n\n\nclass FeedbackService:\n    WAIT_FEEDBACK = 0\n    _VALID_LANGUAGE_CODE = \"en\"\n\n    def __init__(\n        self,\n        feedback_repository: FeedbackRepository,\n        language_service: LanguageService,\n        telegram_service: TelegramService,\n    ) -> None:\n        self.feedback_repository = feedback_repository\n        self.language_service = language_service\n        self.telegram_service = telegram_service\n\n    async def ask_feedback(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        await self.telegram_service.reply_with_cancel_markup(\n            update, context, _(\"Send me your feedback in English\")\n        )\n\n        return self.WAIT_FEEDBACK\n\n    async def check_text(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n\n        if msg.text == _(CANCEL):\n            return await self.telegram_service.cancel_conversation(update, context)\n\n        return await self._save_feedback(update, context)\n\n    async def _save_feedback(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        msg_user = cast(\"User\", msg.from_user)\n        msg_username = cast(\"str\", msg_user.username)\n        msg_text = cast(\"str\", msg.text)\n\n        feedback_lang = detect(msg.text)\n        if feedback_lang.lower() != self._VALID_LANGUAGE_CODE:\n            await msg.reply_text(_(\"The feedback is not in English, try again\"))\n            return self.WAIT_FEEDBACK\n\n        self.feedback_repository.save_feedback(msg.chat.id, msg_username, msg_text)\n        await msg.reply_text(_(\"Thank you for your feedback, I've forwarded it to my developer\"))\n\n        return ConversationHandler.END\n"
  },
  {
    "path": "pdf_bot/file/__init__.py",
    "content": "from .file_handler import FileHandler\nfrom .file_service import FileService\n\n__all__ = [\"FileHandler\", \"FileService\"]\n"
  },
  {
    "path": "pdf_bot/file/file_handler.py",
    "content": "from telegram.ext import (\n    BaseHandler,\n    CallbackQueryHandler,\n    CommandHandler,\n    ConversationHandler,\n    MessageHandler,\n    filters,\n)\n\nfrom pdf_bot.file_processor import AbstractFileProcessor\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\nfrom pdf_bot.telegram_internal import TelegramService\n\nfrom .file_service import FileService\n\n\nclass FileHandler(AbstractTelegramHandler):\n    def __init__(self, file_service: FileService, telegram_service: TelegramService) -> None:\n        self.file_service = file_service\n        self.telegram_service = telegram_service\n\n    @property\n    def handlers(self) -> list[BaseHandler]:\n        return [\n            ConversationHandler(\n                entry_points=[\n                    MessageHandler(filters.Document.PDF, self.file_service.check_pdf),\n                    MessageHandler(\n                        filters.PHOTO | filters.Document.IMAGE,\n                        self.file_service.check_image,\n                    ),\n                ],\n                states={AbstractFileProcessor.WAIT_FILE_TASK: AbstractFileProcessor.get_handlers()},\n                fallbacks=[\n                    CallbackQueryHandler(\n                        self.telegram_service.cancel_conversation,\n                        pattern=r\"^cancel$\",\n                    ),\n                    CommandHandler(\"cancel\", self.telegram_service.cancel_conversation),\n                ],\n                allow_reentry=True,\n            )\n        ]\n"
  },
  {
    "path": "pdf_bot/file/file_service.py",
    "content": "from typing import cast\n\nfrom telegram import Message, Update\nfrom telegram.constants import FileSizeLimit\nfrom telegram.ext import ContextTypes, ConversationHandler\n\nfrom pdf_bot.image_processor import ImageTaskProcessor\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.models import FileData\nfrom pdf_bot.pdf_processor import PdfTaskProcessor\nfrom pdf_bot.telegram_internal import TelegramService\n\n\nclass FileService:\n    def __init__(\n        self,\n        telegram_service: TelegramService,\n        language_service: LanguageService,\n        image_task_processor: ImageTaskProcessor,\n        pdf_task_processor: PdfTaskProcessor,\n    ) -> None:\n        self.telegram_service = telegram_service\n        self.image_task_processor = image_task_processor\n        self.pdf_task_processor = pdf_task_processor\n        self.language_service = language_service\n\n    async def check_pdf(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> str | int:\n        file_data = await self._get_file_data(update, context)\n        if file_data is None:\n            return ConversationHandler.END\n        self.telegram_service.cache_file_data(context, file_data)\n\n        return await self.pdf_task_processor.ask_task(update, context)\n\n    async def check_image(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int | str:\n        file_data = await self._get_file_data(update, context)\n        if file_data is None:\n            return ConversationHandler.END\n        self.telegram_service.cache_file_data(context, file_data)\n\n        return await self.image_task_processor.ask_task(update, context)\n\n    async def _get_file_data(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> FileData | None:\n        msg = cast(\"Message\", update.effective_message)\n        file = msg.document or msg.photo[-1]\n        file_size = file.file_size\n\n        if file_size is not None and file_size > FileSizeLimit.FILESIZE_DOWNLOAD:\n            _ = self.language_service.set_app_language(update, context)\n            await msg.reply_text(\n                \"{desc_1}\\n\\n{desc_2}\".format(\n                    desc_1=_(\"Your file is too big for me to download and process\"),\n                    desc_2=_(\n                        \"Note that this is a Telegram Bot limitation and there's \"\n                        \"nothing I can do unless Telegram changes this limit\"\n                    ),\n                ),\n            )\n            return None\n        return FileData.from_telegram_object(file)\n"
  },
  {
    "path": "pdf_bot/file_processor/__init__.py",
    "content": "from .abstract_file_processor import AbstractFileProcessor, ErrorHandlerType\nfrom .abstract_file_task_processor import AbstractFileTaskProcessor\nfrom .file_task_mixin import FileTaskMixin\n\n__all__ = [\n    \"AbstractFileProcessor\",\n    \"AbstractFileTaskProcessor\",\n    \"ErrorHandlerType\",\n    \"FileTaskMixin\",\n]\n"
  },
  {
    "path": "pdf_bot/file_processor/abstract_file_processor.py",
    "content": "import shutil\nfrom abc import ABC, abstractmethod\nfrom collections.abc import AsyncGenerator, Callable, Coroutine, Sequence\nfrom contextlib import asynccontextmanager, suppress\nfrom pathlib import Path\nfrom typing import Any, ClassVar, cast\n\nfrom telegram import Message, Update\nfrom telegram.error import BadRequest\nfrom telegram.ext import BaseHandler, ContextTypes, ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import CallbackQueryDataTypeError\nfrom pdf_bot.file_processor.errors import DuplicateClassError\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\nfrom pdf_bot.telegram_internal import TelegramGetUserDataError, TelegramService\n\nfrom .file_task_mixin import FileTaskMixin\n\nErrorHandlerType = Callable[\n    [Update, ContextTypes.DEFAULT_TYPE, Exception, FileData],\n    Coroutine[Any, Any, str | int],\n]\n\n\nclass AbstractFileProcessor(FileTaskMixin, ABC):\n    _FILE_PROCESSORS: ClassVar[dict[str, \"AbstractFileProcessor\"]] = {}\n\n    def __init__(\n        self,\n        telegram_service: TelegramService,\n        language_service: LanguageService,\n        bypass_init_check: bool = False,\n    ) -> None:\n        self.telegram_service = telegram_service\n        self.language_service = language_service\n\n        cls_name = self.__class__.__name__\n        if not bypass_init_check and cls_name in self._FILE_PROCESSORS:\n            raise DuplicateClassError(cls_name)\n        self._FILE_PROCESSORS[cls_name] = self\n\n    @classmethod\n    @abstractmethod\n    def get_task_data_list(cls) -> Sequence[TaskData]:\n        pass\n\n    @classmethod\n    def get_handlers(cls) -> list[BaseHandler]:\n        return [x.handler for x in cls._FILE_PROCESSORS.values()]\n\n    @property\n    @abstractmethod\n    def task_type(self) -> TaskType:\n        pass\n\n    @property\n    @abstractmethod\n    def task_data(self) -> TaskData:\n        pass\n\n    @property\n    @abstractmethod\n    def handler(self) -> BaseHandler:\n        pass\n\n    @asynccontextmanager\n    @abstractmethod\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        yield FileTaskResult(Path())\n\n    @property\n    def generic_error_types(self) -> set[type[Exception]]:\n        return set()\n\n    @property\n    def custom_error_handlers(\n        self,\n    ) -> dict[type[Exception], ErrorHandlerType]:\n        return {}\n\n    async def ask_task(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> str | int:\n        query = update.callback_query\n        if query is not None:\n            await query.delete_message()\n\n        return await self.ask_task_helper(\n            self.language_service, update, context, self.get_task_data_list()\n        )\n\n    async def process_file(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> str | int:\n        _ = self.language_service.set_app_language(update, context)\n        query = update.callback_query\n        msg = cast(\"Message\", update.effective_message)\n        file_data: str | FileData\n\n        if query is not None:\n            data: str | FileData | None = query.data\n            if not isinstance(data, FileData):\n                raise CallbackQueryDataTypeError(data)\n\n            file_data = data\n            await self.telegram_service.answer_query_and_drop_data(context, query)\n            await query.edit_message_text(_(\"Processing your file\"))\n        else:\n            try:\n                file_data = self.telegram_service.get_file_data(context)\n            except TelegramGetUserDataError as e:\n                await msg.reply_text(_(str(e)))\n                return ConversationHandler.END\n\n        # Delete the previous message and send processing message for processors with\n        # nested conversation\n        await self._process_previous_message(update, context)\n\n        state = await self._process_file_task(update, context, file_data)\n        if state is not None:\n            return state\n\n        return ConversationHandler.END\n\n    async def _process_file_task(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE, file_data: FileData\n    ) -> str | int | None:\n        try:\n            async with self.process_file_task(file_data) as result:\n                if result.message is not None:\n                    await self.telegram_service.send_message(update, context, result.message)\n\n                out_path = final_path = result.path\n                final_path = out_path\n\n                if out_path.is_dir():\n                    shutil.make_archive(str(out_path), \"zip\", out_path)\n                    final_path = out_path.with_suffix(\".zip\")\n\n                await self.telegram_service.send_file(update, context, final_path, self.task_type)\n        except Exception as e:\n            handlers = self._get_error_handlers()\n            error_handler: ErrorHandlerType | None = None\n            for error_type, handler in handlers.items():\n                if isinstance(e, error_type):\n                    error_handler = handler\n\n            if error_handler is not None:\n                return await error_handler(update, context, e, file_data)\n            raise\n        return None\n\n    async def _process_previous_message(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> None:\n        message_data = None\n        with suppress(TelegramGetUserDataError, BadRequest):\n            message_data = self.telegram_service.get_message_data(context)\n            await context.bot.delete_message(message_data.chat_id, message_data.message_id)\n\n        if message_data is None:\n            return\n\n        _ = self.language_service.set_app_language(update, context)\n        await context.bot.send_message(message_data.chat_id, _(\"Processing your file\"))\n\n    def _get_error_handlers(\n        self,\n    ) -> dict[type[Exception], ErrorHandlerType]:\n        handlers: dict[type[Exception], ErrorHandlerType] = dict.fromkeys(\n            self.generic_error_types, self._handle_generic_error\n        )\n        handlers.update(self.custom_error_handlers)\n        return handlers\n\n    async def _handle_generic_error(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        exception: Exception,\n        _file_data: FileData,\n    ) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        await msg.reply_text(_(str(exception)))\n\n        return ConversationHandler.END\n"
  },
  {
    "path": "pdf_bot/file_processor/abstract_file_task_processor.py",
    "content": "from abc import ABC, abstractmethod\n\nfrom telegram import Update\nfrom telegram.ext import CallbackContext\n\nfrom pdf_bot.language import LanguageService\n\nfrom .abstract_file_processor import AbstractFileProcessor\nfrom .file_task_mixin import FileTaskMixin\n\n\nclass AbstractFileTaskProcessor(FileTaskMixin, ABC):\n    def __init__(self, language_service: LanguageService) -> None:\n        self.language_service = language_service\n\n    @property\n    @abstractmethod\n    def processor_type(self) -> type[AbstractFileProcessor]:\n        pass\n\n    async def ask_task(self, update: Update, context: CallbackContext) -> str | int:\n        return await self.ask_task_helper(\n            self.language_service,\n            update,\n            context,\n            self.processor_type.get_task_data_list(),\n        )\n"
  },
  {
    "path": "pdf_bot/file_processor/errors.py",
    "content": "class DuplicateClassError(Exception):\n    def __init__(self, cls_name: str, *args: object) -> None:\n        msg = f\"Class has already been initialised: {cls_name}\"\n        super().__init__(msg, *args)\n"
  },
  {
    "path": "pdf_bot/file_processor/file_task_mixin.py",
    "content": "from collections.abc import Sequence\nfrom typing import cast\n\nfrom telegram import (\n    Document,\n    InlineKeyboardButton,\n    InlineKeyboardMarkup,\n    Message,\n    PhotoSize,\n    Update,\n)\nfrom telegram.ext import ContextTypes, ConversationHandler\n\nfrom pdf_bot.consts import CANCEL, FILE_DATA, GENERIC_ERROR\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.models import FileData, TaskData\n\n\nclass FileTaskMixin:\n    WAIT_FILE_TASK = \"wait_file_task\"\n    _KEYBOARD_SIZE = 2\n\n    async def ask_task_helper(\n        self,\n        language_service: LanguageService,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        tasks: Sequence[TaskData],\n    ) -> str | int:\n        _ = language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        file_data: FileData | None = None\n\n        # Try to retrieve the file data cached in user data first\n        if context.user_data is not None:\n            file_data = context.user_data.get(FILE_DATA)\n\n        # If we can't retrieve the file data, then we get the document/photo attached to\n        # the message\n        if file_data is None:\n            msg_doc: Document | None = msg.document\n            msg_photo: tuple[PhotoSize, ...] | None = msg.photo\n            if msg_doc is None and msg_photo is None:\n                await msg.reply_text(_(GENERIC_ERROR))\n                return ConversationHandler.END\n\n            file = msg.document or msg.photo[-1]\n\n        def get_callback_data(data_type: type[FileData]) -> FileData:\n            if file_data is not None:\n                return data_type(file_data.id, file_data.name)\n            return data_type.from_telegram_object(file)\n\n        keyboard = [\n            [\n                InlineKeyboardButton(\n                    _(task.label),\n                    callback_data=get_callback_data(task.data_type),\n                )\n                for task in tasks[i : i + self._KEYBOARD_SIZE]\n                if task is not None\n            ]\n            for i in range(0, len(tasks), self._KEYBOARD_SIZE)\n        ]\n        keyboard.append([InlineKeyboardButton(_(CANCEL), callback_data=\"cancel\")])\n\n        reply_markup = InlineKeyboardMarkup(keyboard)\n        await msg.reply_text(\n            _(\"Select the task that you'll like to perform\"), reply_markup=reply_markup\n        )\n\n        return self.WAIT_FILE_TASK\n"
  },
  {
    "path": "pdf_bot/image/__init__.py",
    "content": "from .image_service import ImageService\n\n__all__ = [\"ImageService\"]\n"
  },
  {
    "path": "pdf_bot/image/image_service.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom pathlib import Path\n\nimport img2pdf\nimport noteshrink\nfrom img2pdf import Rotation\n\nfrom pdf_bot.cli import CLIService\nfrom pdf_bot.io_internal import IOService\nfrom pdf_bot.models import FileData\nfrom pdf_bot.telegram_internal import TelegramService\n\n\nclass ImageService:\n    def __init__(\n        self,\n        cli_service: CLIService,\n        io_service: IOService,\n        telegram_service: TelegramService,\n    ) -> None:\n        self.cli_service = cli_service\n        self.io_service = io_service\n        self.telegram_service = telegram_service\n\n    @asynccontextmanager\n    async def beautify_and_convert_images_to_pdf(\n        self, file_data_list: list[FileData]\n    ) -> AsyncGenerator[Path, None]:\n        file_ids = self._get_file_ids(file_data_list)\n        async with self.telegram_service.download_files(file_ids) as file_paths:\n            with self.io_service.create_temp_pdf_file(\"Beautified\") as out_path:\n                noteshrink.notescan_main(\n                    file_paths, basename=f\"{out_path.stem}_page\", pdfname=out_path\n                )\n                yield out_path\n\n    @asynccontextmanager\n    async def convert_images_to_pdf(\n        self, file_data_list: list[FileData]\n    ) -> AsyncGenerator[Path, None]:\n        file_ids = self._get_file_ids(file_data_list)\n        async with self.telegram_service.download_files(file_ids) as file_paths:\n            file_path_strs = [str(x) for x in file_paths]\n            with self.io_service.create_temp_pdf_file(\"Converted\") as out_path:\n                with out_path.open(\"wb\") as f:\n                    f.write(img2pdf.convert(file_path_strs, rotation=Rotation.ifvalid))\n                yield out_path\n\n    @staticmethod\n    def _get_file_ids(file_data_list: list[FileData]) -> list[str]:\n        return [x.id for x in file_data_list]\n"
  },
  {
    "path": "pdf_bot/image_handler/__init__.py",
    "content": "from .batch_image_handler import BatchImageHandler\nfrom .batch_image_service import BatchImageService\n\n__all__ = [\"BatchImageHandler\", \"BatchImageService\"]\n"
  },
  {
    "path": "pdf_bot/image_handler/batch_image_handler.py",
    "content": "from telegram.ext import BaseHandler, CommandHandler, ConversationHandler, MessageHandler, filters\n\nfrom pdf_bot.consts import TEXT_FILTER\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\nfrom pdf_bot.telegram_internal import TelegramService\n\nfrom .batch_image_service import BatchImageService\n\n\nclass BatchImageHandler(AbstractTelegramHandler):\n    _IMAGE_COMMAND = \"image\"\n\n    def __init__(\n        self, batch_image_service: BatchImageService, telegram_service: TelegramService\n    ) -> None:\n        self.batch_image_service = batch_image_service\n        self.telegram_service = telegram_service\n\n    @property\n    def handlers(self) -> list[BaseHandler]:\n        return [\n            ConversationHandler(\n                entry_points=[\n                    CommandHandler(self._IMAGE_COMMAND, self.batch_image_service.ask_first_image)\n                ],\n                states={\n                    BatchImageService.WAIT_IMAGE: [\n                        MessageHandler(\n                            filters.Document.IMAGE | filters.PHOTO,\n                            self.batch_image_service.check_image,\n                        ),\n                        MessageHandler(TEXT_FILTER, self.batch_image_service.check_text),\n                    ]\n                },\n                fallbacks=[CommandHandler(\"cancel\", self.telegram_service.cancel_conversation)],\n                allow_reentry=True,\n            )\n        ]\n"
  },
  {
    "path": "pdf_bot/image_handler/batch_image_service.py",
    "content": "from gettext import gettext as _\nfrom typing import cast\n\nfrom telegram import Document, Message, PhotoSize, ReplyKeyboardMarkup, ReplyKeyboardRemove, Update\nfrom telegram.constants import ParseMode\nfrom telegram.ext import ContextTypes, ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.consts import CANCEL\nfrom pdf_bot.image import ImageService\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.models import FileData\nfrom pdf_bot.telegram_internal import TelegramService, TelegramServiceError\n\n\nclass BatchImageService:\n    WAIT_IMAGE = 0\n    IMAGE_DATA = \"image_data\"\n\n    _BEAUTIFY = _(\"Beautify\")\n    _TO_PDF = _(\"To PDF\")\n    _REMOVE_LAST = _(\"Remove last file\")\n\n    def __init__(\n        self,\n        image_service: ImageService,\n        telegram_service: TelegramService,\n        language_service: LanguageService,\n    ) -> None:\n        self.image_service = image_service\n        self.telegram_service = telegram_service\n        self.language_service = language_service\n\n    async def ask_first_image(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        self.telegram_service.update_user_data(context, self.IMAGE_DATA, [])\n        _ = self.language_service.set_app_language(update, context)\n        await self.telegram_service.reply_with_cancel_markup(\n            update,\n            context,\n            \"{desc_1}\\n\\n{desc_2}\".format(\n                desc_1=_(\n                    \"Send me the images that you'll like to beautify or convert into a PDF file\"\n                ),\n                desc_2=_(\n                    \"Note that the images will be beautified and converted in the order\"\n                    \" that you send me\"\n                ),\n            ),\n        )\n\n        return self.WAIT_IMAGE\n\n    async def check_image(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n\n        try:\n            image = self.telegram_service.check_image(msg)\n        except TelegramServiceError as e:\n            await msg.reply_text(_(str(e)))\n            return self.WAIT_IMAGE\n\n        try:\n            self._append_file_data(context, image)\n        except TelegramServiceError as e:\n            await msg.reply_text(_(str(e)))\n            return ConversationHandler.END\n\n        return await self._ask_next_image(update, context)\n\n    async def check_text(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        text = msg.text\n\n        if text in [_(self._REMOVE_LAST), _(self._BEAUTIFY), _(self._TO_PDF)]:\n            try:\n                file_data_list = self.telegram_service.get_user_data(context, self.IMAGE_DATA)\n            except TelegramServiceError as e:\n                await msg.reply_text(_(str(e)))\n                return ConversationHandler.END\n\n            if text == _(self._REMOVE_LAST):\n                return await self._remove_last_image(update, context, file_data_list)\n            return await self._preprocess_images(update, context, file_data_list)\n        if text == _(CANCEL):\n            return await self.telegram_service.cancel_conversation(update, context)\n        return self.WAIT_IMAGE\n\n    async def _ask_next_image(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        text = \"{desc}\\n\".format(desc=_(\"You've sent me these images so far:\"))\n        await self.telegram_service.send_file_names(\n            msg.chat_id,\n            text,\n            context.user_data[self.IMAGE_DATA],  # type: ignore[index]\n        )\n\n        reply_markup = ReplyKeyboardMarkup(\n            [[_(self._BEAUTIFY), _(self._TO_PDF)], [_(self._REMOVE_LAST), _(CANCEL)]],\n            resize_keyboard=True,\n            one_time_keyboard=True,\n        )\n        await msg.reply_text(\n            _(\n                \"Select the task from below if you've sent me all the images, or keep\"\n                \" sending me the images\"\n            ),\n            reply_markup=reply_markup,\n        )\n\n        return self.WAIT_IMAGE\n\n    async def _remove_last_image(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        file_data_list: list[FileData],\n    ) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n\n        try:\n            file_data = file_data_list.pop()\n        except IndexError:\n            await msg.reply_text(_(\"You've already removed all the images you've sent me\"))\n            return await self.ask_first_image(update, context)\n\n        await msg.reply_text(\n            _(\"{file_name} has been removed\").format(file_name=f\"<b>{file_data.name}</b>\"),\n            parse_mode=ParseMode.HTML,\n        )\n\n        if file_data_list:\n            self.telegram_service.update_user_data(context, self.IMAGE_DATA, file_data_list)\n            return await self._ask_next_image(update, context)\n        return await self.ask_first_image(update, context)\n\n    async def _preprocess_images(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        file_data_list: list[FileData],\n    ) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        num_files = len(file_data_list)\n\n        if num_files == 0:\n            await msg.reply_text(_(\"You haven't sent me any images\"))\n            return await self.ask_first_image(update, context)\n        if num_files == 1:\n            await msg.reply_text(_(\"You've only sent me one image\"))\n            self.telegram_service.update_user_data(context, self.IMAGE_DATA, file_data_list)\n            return await self._ask_next_image(update, context)\n        return await self._process_images(update, context, file_data_list)\n\n    async def _process_images(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        file_data_list: list[FileData],\n    ) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        is_beautify = False\n\n        if msg.text == _(self._BEAUTIFY):\n            is_beautify = True\n            text = _(\"Beautifying and converting your images into a PDF file\")\n        else:\n            text = _(\"Converting your images into a PDF file\")\n        await msg.reply_text(text, reply_markup=ReplyKeyboardRemove())\n\n        if is_beautify:\n            async with self.image_service.beautify_and_convert_images_to_pdf(\n                file_data_list\n            ) as out_path:\n                await self.telegram_service.send_file(\n                    update, context, out_path, TaskType.beautify_image\n                )\n        else:\n            async with self.image_service.convert_images_to_pdf(file_data_list) as out_path:\n                await self.telegram_service.send_file(\n                    update, context, out_path, TaskType.image_to_pdf\n                )\n\n        return ConversationHandler.END\n\n    def _append_file_data(\n        self, context: ContextTypes.DEFAULT_TYPE, image: Document | PhotoSize\n    ) -> None:\n        file_data_list: list[FileData] = self.telegram_service.get_user_data(\n            context, self.IMAGE_DATA\n        )\n        file_data = FileData.from_telegram_object(image)\n        file_data_list.append(file_data)\n        self.telegram_service.update_user_data(context, self.IMAGE_DATA, file_data_list)\n"
  },
  {
    "path": "pdf_bot/image_processor/__init__.py",
    "content": "from .abstract_image_processor import AbstractImageProcessor\nfrom .beautify_image_processor import BeautifyImageData, BeautifyImageProcessor\nfrom .image_task_processor import ImageTaskProcessor\nfrom .image_to_pdf_processor import ImageToPdfData, ImageToPdfProcessor\n\n__all__ = [\n    \"AbstractImageProcessor\",\n    \"BeautifyImageData\",\n    \"BeautifyImageProcessor\",\n    \"ImageTaskProcessor\",\n    \"ImageToPdfData\",\n    \"ImageToPdfProcessor\",\n]\n"
  },
  {
    "path": "pdf_bot/image_processor/abstract_image_processor.py",
    "content": "from typing import ClassVar\n\nfrom pdf_bot.file_processor import AbstractFileProcessor\nfrom pdf_bot.file_processor.errors import DuplicateClassError\nfrom pdf_bot.image import ImageService\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.telegram_internal import TelegramService\n\n\nclass AbstractImageProcessor(AbstractFileProcessor):\n    _IMAGE_PROCESSORS: ClassVar[dict[str, \"AbstractImageProcessor\"]] = {}\n\n    def __init__(\n        self,\n        image_service: ImageService,\n        telegram_service: TelegramService,\n        language_service: LanguageService,\n        bypass_init_check: bool = False,\n    ) -> None:\n        self.image_service = image_service\n        cls_name = self.__class__.__name__\n\n        if not bypass_init_check and cls_name in self._IMAGE_PROCESSORS:\n            raise DuplicateClassError(cls_name)\n        self._IMAGE_PROCESSORS[cls_name] = self\n\n        super().__init__(telegram_service, language_service, bypass_init_check)\n\n    @classmethod\n    def get_task_data_list(cls) -> list[TaskData]:\n        return [x.task_data for x in cls._IMAGE_PROCESSORS.values()]\n"
  },
  {
    "path": "pdf_bot/image_processor/beautify_image_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_image_processor import AbstractImageProcessor\n\n\nclass BeautifyImageData(FileData):\n    pass\n\n\nclass BeautifyImageProcessor(AbstractImageProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.beautify_image\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Beautify\"), BeautifyImageData)\n\n    @property\n    def handler(self) -> CallbackQueryHandler:\n        return CallbackQueryHandler(self.process_file, pattern=BeautifyImageData)\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        async with self.image_service.beautify_and_convert_images_to_pdf([file_data]) as path:\n            yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/image_processor/image_task_processor.py",
    "content": "from pdf_bot.file_processor import AbstractFileTaskProcessor\n\nfrom .abstract_image_processor import AbstractImageProcessor\n\n\nclass ImageTaskProcessor(AbstractFileTaskProcessor):\n    @property\n    def processor_type(self) -> type[AbstractImageProcessor]:\n        return AbstractImageProcessor\n"
  },
  {
    "path": "pdf_bot/image_processor/image_to_pdf_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_image_processor import AbstractImageProcessor\n\n\nclass ImageToPdfData(FileData):\n    pass\n\n\nclass ImageToPdfProcessor(AbstractImageProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.image_to_pdf\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"To PDF\"), ImageToPdfData)\n\n    @property\n    def handler(self) -> CallbackQueryHandler:\n        return CallbackQueryHandler(self.process_file, pattern=ImageToPdfData)\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        async with self.image_service.convert_images_to_pdf([file_data]) as path:\n            yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/io_internal/__init__.py",
    "content": "from .io_service import IOService\n\n__all__ = [\"IOService\"]\n"
  },
  {
    "path": "pdf_bot/io_internal/io_service.py",
    "content": "from collections.abc import Generator\nfrom contextlib import contextmanager\nfrom pathlib import Path\nfrom tempfile import NamedTemporaryFile, TemporaryDirectory\n\n\nclass IOService:\n    @staticmethod\n    @contextmanager\n    def create_temp_directory(prefix: str | None = None) -> Generator[Path, None, None]:\n        if prefix is not None and not prefix.endswith(\"_\"):\n            prefix += \"_\"\n\n        try:\n            td = TemporaryDirectory(prefix=prefix)\n            yield Path(td.name)\n        finally:\n            td.cleanup()\n\n    @staticmethod\n    @contextmanager\n    def create_temp_file(\n        prefix: str | None = None, suffix: str | None = None\n    ) -> Generator[Path, None, None]:\n        if prefix is not None and not prefix.endswith(\"_\"):\n            prefix += \"_\"\n\n        try:\n            tf = NamedTemporaryFile(prefix=prefix, suffix=suffix)  # noqa: SIM115\n            yield Path(tf.name)\n        finally:\n            tf.close()\n\n    @staticmethod\n    @contextmanager\n    def create_temp_files(num_files: int) -> Generator[list[Path], None, None]:\n        try:\n            tempfiles = [NamedTemporaryFile() for _ in range(num_files)]  # noqa: SIM115\n            yield [Path(x.name) for x in tempfiles]\n        finally:\n            for tf in tempfiles:\n                tf.close()\n\n    @contextmanager\n    def create_temp_pdf_file(self, prefix: str | None = None) -> Generator[Path, None, None]:\n        with self.create_temp_file(prefix=prefix, suffix=\".pdf\") as path:\n            yield path\n\n    @contextmanager\n    def create_temp_png_file(self, prefix: str) -> Generator[Path, None, None]:\n        with self.create_temp_file(prefix=prefix, suffix=\".png\") as out_path:\n            yield out_path\n\n    @contextmanager\n    def create_temp_txt_file(self, prefix: str) -> Generator[Path, None, None]:\n        with self.create_temp_file(prefix=prefix, suffix=\".txt\") as out_path:\n            yield out_path\n"
  },
  {
    "path": "pdf_bot/language/__init__.py",
    "content": "from .language_handler import LanguageHandler\nfrom .language_repository import LanguageRepository\nfrom .language_service import LanguageService\nfrom .models import LanguageData, SetLanguageData\n\n__all__ = [\n    \"LanguageData\",\n    \"LanguageHandler\",\n    \"LanguageRepository\",\n    \"LanguageService\",\n    \"SetLanguageData\",\n]\n"
  },
  {
    "path": "pdf_bot/language/language_handler.py",
    "content": "from telegram.ext import BaseHandler, CallbackQueryHandler, CommandHandler\n\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\n\nfrom .language_service import LanguageService\nfrom .models import LanguageData, SetLanguageData\n\n\nclass LanguageHandler(AbstractTelegramHandler):\n    _SET_LANGUAGE_COMMAND = \"setlang\"\n\n    def __init__(self, language_service: LanguageService) -> None:\n        self.language_service = language_service\n\n    @property\n    def handlers(self) -> list[BaseHandler]:\n        return [\n            CommandHandler(self._SET_LANGUAGE_COMMAND, self.language_service.send_language_options),\n            CallbackQueryHandler(\n                self.language_service.send_language_options, pattern=SetLanguageData\n            ),\n            CallbackQueryHandler(self.language_service.update_user_language, pattern=LanguageData),\n        ]\n"
  },
  {
    "path": "pdf_bot/language/language_repository.py",
    "content": "from google.cloud.datastore import Client, Entity\n\nfrom pdf_bot.consts import LANGUAGE, USER\n\n\nclass LanguageRepository:\n    EN_GB_CODE = \"en_GB\"\n    EN_CODE = \"en\"\n\n    def __init__(self, datastore_client: Client) -> None:\n        self.datastore_client = datastore_client\n\n    def get_language(self, user_id: int) -> str:\n        user_key = self.datastore_client.key(USER, user_id)\n        user = self.datastore_client.get(key=user_key)\n        lang: str\n\n        if user is None or LANGUAGE not in user:\n            return self.EN_GB_CODE\n\n        lang = user[LANGUAGE]\n\n        # This check is for backwards compatibility\n        if lang == self.EN_CODE:\n            return self.EN_GB_CODE\n        return lang\n\n    def upsert_language(self, user_id: int, language_code: str) -> None:\n        with self.datastore_client.transaction():\n            user_key = self.datastore_client.key(USER, user_id)\n            user = self.datastore_client.get(key=user_key)\n            if user is None:\n                user = Entity(user_key)\n            user[LANGUAGE] = language_code\n            self.datastore_client.put(user)\n"
  },
  {
    "path": "pdf_bot/language/language_service.py",
    "content": "import gettext\nfrom collections.abc import Callable\nfrom contextlib import suppress\nfrom typing import cast\n\nfrom telegram import CallbackQuery, InlineKeyboardButton, InlineKeyboardMarkup, Message, Update\nfrom telegram.ext import ContextTypes\n\nfrom pdf_bot.errors import CallbackQueryDataTypeError, UserIdError\n\nfrom .language_repository import LanguageRepository\nfrom .models import LanguageData\n\n\nclass LanguageService:\n    _LANGUAGE_CODE = \"language_code\"\n    _KEYBOARD_SIZE = 2\n\n    _LANGUAGE_DATA_LIST = sorted(\n        [\n            LanguageData(label=\"🇬🇧 English (UK)\", long_code=\"en_GB\"),\n            LanguageData(label=\"🇺🇸 English (US)\", long_code=\"en_US\"),\n            LanguageData(label=\"🇭🇰 廣東話\", long_code=\"zh_HK\"),\n            LanguageData(label=\"🇹🇼 繁體中文\", long_code=\"zh_TW\"),\n            LanguageData(label=\"🇨🇳 简体中文\", long_code=\"zh_CN\"),\n            LanguageData(label=\"🇮🇹 Italiano\", long_code=\"it_IT\"),\n            LanguageData(label=\"🇦🇪 اَلْعَرَبِيَّةُ\", long_code=\"ar_SA\"),\n            LanguageData(label=\"🇳🇱 Nederlands\", long_code=\"nl_NL\"),\n            LanguageData(label=\"🇧🇷 Português do Brasil\", long_code=\"pt_BR\"),\n            LanguageData(label=\"🇪🇸 español\", long_code=\"es_ES\"),\n            LanguageData(label=\"🇹🇷 Türkçe\", long_code=\"tr_TR\"),\n            LanguageData(label=\"🇮🇱 עברית\", long_code=\"he_IL\"),\n            LanguageData(label=\"🇷🇺 русский язык\", long_code=\"ru_RU\"),\n            LanguageData(label=\"🇫🇷 français\", long_code=\"fr_FR\"),\n            LanguageData(label=\"🇱🇰 සිංහල\", long_code=\"si_LK\"),\n            LanguageData(label=\"🇿🇦 Afrikaans\", long_code=\"af_ZA\"),\n            LanguageData(label=\"català\", long_code=\"ca_ES\"),\n            LanguageData(label=\"🇨🇿 čeština\", long_code=\"cs_CZ\"),\n            LanguageData(label=\"🇩🇰 dansk\", long_code=\"da_DK\"),\n            LanguageData(label=\"🇫🇮 suomen kieli\", long_code=\"fi_FI\"),\n            LanguageData(label=\"🇩🇪 Deutsch\", long_code=\"de_DE\"),\n            LanguageData(label=\"🇬🇷 ελληνικά\", long_code=\"el_GR\"),\n            LanguageData(label=\"🇭🇺 magyar nyelv\", long_code=\"hu_HU\"),\n            LanguageData(label=\"🇯🇵 日本語\", long_code=\"ja_JP\"),\n            LanguageData(label=\"🇰🇷 한국어\", long_code=\"ko_KR\"),\n            LanguageData(label=\"🇳🇴 norsk\", long_code=\"no_NO\"),\n            LanguageData(label=\"🇵🇱 polski\", long_code=\"pl_PL\"),\n            LanguageData(label=\"🇵🇹 português\", long_code=\"pt_PT\"),\n            LanguageData(label=\"🇷🇴 Daco-Romanian\", long_code=\"ro_RO\"),\n            LanguageData(label=\"🇸🇪 svenska\", long_code=\"sv_SE\"),\n            LanguageData(label=\"🇺🇦 українська мова\", long_code=\"uk_UA\"),\n            LanguageData(label=\"🇻🇳 Tiếng Việt\", long_code=\"vi_VN\"),\n            LanguageData(label=\"🇮🇳 हिन्दी\", long_code=\"hi_IN\"),\n            LanguageData(label=\"🇮🇩 bahasa Indonesia\", long_code=\"id_ID\"),\n            LanguageData(label=\"🇺🇿 O'zbekcha\", long_code=\"uz_UZ\"),\n            LanguageData(label=\"🇲🇾 Bahasa Melayu\", long_code=\"ms_MY\"),\n            LanguageData(label=\"🇮🇳 தமிழ்\", long_code=\"ta_IN\"),\n            LanguageData(label=\"🇪🇹 አማርኛ\", long_code=\"am_ET\"),\n            LanguageData(label=\"🇰🇬 Кыргызча\", long_code=\"ky_KG\"),\n            LanguageData(label=\"🇮🇷 فارسی\", long_code=\"fa_IR\"),\n        ],\n        key=lambda x: x.long_code,\n    )\n\n    def __init__(self, language_repository: LanguageRepository) -> None:\n        self.language_repository = language_repository\n\n    def get_language_code_from_short_code(self, short_code: str) -> str | None:\n        for data in self._LANGUAGE_DATA_LIST:\n            if data.short_code == short_code:\n                return data.long_code\n        return None\n\n    async def send_language_options(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> None:\n        query = update.callback_query\n\n        # This method is used by both command and callback query handlers, so we need to\n        # check if query is `None` here\n        if query is not None:\n            await query.answer()\n\n        _ = self.set_app_language(update, context)\n        reply_markup = self._get_languages_markup(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        await msg.reply_text(_(\"Select your language\"), reply_markup=reply_markup)\n\n    def get_user_language(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> str:\n        user_data = context.user_data\n        if user_data is not None:\n            lang: str | None = user_data.get(self._LANGUAGE_CODE)\n            if lang is not None:\n                return lang\n\n        user_id = self._get_user_id(update)\n        lang = self.language_repository.get_language(user_id)\n\n        if user_data is not None:\n            user_data[self._LANGUAGE_CODE] = lang\n        return lang\n\n    async def update_user_language(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> None:\n        query = cast(\"CallbackQuery\", update.callback_query)\n        await self._answer_query_and_drop_data(context, query)\n        data: str | LanguageData | None = query.data\n\n        if not isinstance(data, LanguageData):\n            raise CallbackQueryDataTypeError(data)\n\n        self.language_repository.upsert_language(query.from_user.id, data.long_code)\n        if context.user_data is not None:\n            context.user_data[self._LANGUAGE_CODE] = data.long_code\n\n        _ = self.set_app_language(update, context)\n        await query.edit_message_text(\n            _(\"Your language has been set to {language}\").format(language=data.label)\n        )\n\n    def set_app_language(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> Callable[[str], str]:\n        lang = self.get_user_language(update, context)\n        t = gettext.translation(\"pdf_bot\", localedir=\"locale\", languages=[lang])\n\n        return t.gettext\n\n    async def _answer_query_and_drop_data(\n        self, context: ContextTypes.DEFAULT_TYPE, query: CallbackQuery\n    ) -> None:\n        await query.answer()\n        with suppress(KeyError):\n            context.drop_callback_data(query)\n\n    def _get_languages_markup(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> InlineKeyboardMarkup:\n        user_lang = self.get_user_language(update, context)\n        btns = [\n            InlineKeyboardButton(data.label, callback_data=data)\n            for data in self._LANGUAGE_DATA_LIST\n            if data.long_code != user_lang\n        ]\n\n        keyboard = [\n            btns[i : i + self._KEYBOARD_SIZE]\n            for i in range(0, len(self._LANGUAGE_DATA_LIST), self._KEYBOARD_SIZE)\n        ]\n\n        return InlineKeyboardMarkup(keyboard)\n\n    def _get_user_id(self, update: Update) -> int:\n        query: CallbackQuery | None = update.callback_query\n        if query is None:\n            if (\n                update.effective_message is not None\n                and update.effective_message.from_user is not None\n            ):\n                return update.effective_message.from_user.id\n            if update.effective_chat is not None:\n                return update.effective_chat.id\n            raise UserIdError\n        return query.from_user.id\n"
  },
  {
    "path": "pdf_bot/language/models.py",
    "content": "from pydantic import BaseModel\n\n\nclass SetLanguageData:\n    pass\n\n\nclass LanguageData(BaseModel):\n    label: str\n    long_code: str\n\n    @property\n    def short_code(self) -> str:\n        return self.long_code.split(\"_\")[0]\n"
  },
  {
    "path": "pdf_bot/log/__init__.py",
    "content": "from .log_handler import InterceptLoggingHandler, MyLogHandler\n\n__all__ = [\"InterceptLoggingHandler\", \"MyLogHandler\"]\n"
  },
  {
    "path": "pdf_bot/log/log_handler.py",
    "content": "import logging\nimport sys\n\nfrom loguru import logger\nfrom sentry_sdk.integrations.logging import ignore_logger\n\n\nclass InterceptLoggingHandler(logging.Handler):\n    def emit(self, record: logging.LogRecord) -> None:\n        # Get corresponding Loguru level if it exists.\n        try:\n            level = logger.level(record.levelname).name\n        except ValueError:\n            level = record.levelno\n\n        # Find caller from where originated the logged message.\n        frame, depth = sys._getframe(6), 6  # noqa: SLF001\n        while frame and frame.f_code.co_filename == logging.__file__:\n            frame = frame.f_back\n            depth += 1\n\n        logger.opt(depth=depth, exception=record.exc_info).log(level, record.getMessage())\n\n\nclass MyLogHandler:\n    _FONT_TOOLS = \"fontTools\"\n    _WEASYPRINT_LOGGERS = (\"weasyprint\", \"weasyprint.pdf.anchors\", \"weasyprint.images\")\n\n    def __init__(self, intercept_logging_handler: InterceptLoggingHandler) -> None:\n        self.intercept_logging_handler = intercept_logging_handler\n\n    def setup(self) -> None:\n        logging.basicConfig(\n            handlers=[self.intercept_logging_handler], level=logging.INFO, force=True\n        )\n\n        logging.getLogger(self._FONT_TOOLS).setLevel(logging.WARNING)\n        ignore_logger(self._FONT_TOOLS)\n\n        for logger_name in self._WEASYPRINT_LOGGERS:\n            logging.getLogger(logger_name).setLevel(logging.ERROR)\n            ignore_logger(logger_name)\n"
  },
  {
    "path": "pdf_bot/merge/__init__.py",
    "content": "from .merge_handler import MergeHandler\nfrom .merge_service import MergeService\n\n__all__ = [\"MergeHandler\", \"MergeService\"]\n"
  },
  {
    "path": "pdf_bot/merge/merge_handler.py",
    "content": "from telegram.ext import BaseHandler, CommandHandler, ConversationHandler, MessageHandler, filters\n\nfrom pdf_bot.consts import TEXT_FILTER\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\nfrom pdf_bot.telegram_internal import TelegramService\n\nfrom .merge_service import MergeService\n\n\nclass MergeHandler(AbstractTelegramHandler):\n    _MERGE_COMMAND = \"merge\"\n\n    def __init__(self, merge_service: MergeService, telegram_service: TelegramService) -> None:\n        self.merge_service = merge_service\n        self.telegram_service = telegram_service\n\n    @property\n    def handlers(self) -> list[BaseHandler]:\n        return [\n            ConversationHandler(\n                entry_points=[\n                    CommandHandler(self._MERGE_COMMAND, self.merge_service.ask_first_pdf)\n                ],\n                states={\n                    MergeService.WAIT_MERGE_PDF: [\n                        MessageHandler(filters.Document.PDF, self.merge_service.check_pdf),\n                        MessageHandler(TEXT_FILTER, self.merge_service.check_text),\n                    ],\n                },\n                fallbacks=[CommandHandler(\"cancel\", self.telegram_service.cancel_conversation)],\n                allow_reentry=True,\n            )\n        ]\n"
  },
  {
    "path": "pdf_bot/merge/merge_service.py",
    "content": "from gettext import gettext as _\nfrom typing import cast\n\nfrom telegram import Document, Message, ReplyKeyboardMarkup, ReplyKeyboardRemove, Update\nfrom telegram.constants import ParseMode\nfrom telegram.ext import ContextTypes, ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.consts import CANCEL, DONE\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.models import FileData\nfrom pdf_bot.pdf import PdfService, PdfServiceError\nfrom pdf_bot.telegram_internal import TelegramService, TelegramServiceError\n\n\nclass MergeService:\n    WAIT_MERGE_PDF = 0\n    _MERGE_PDF_DATA = \"merge_pdf_data\"\n    _REMOVE_LAST = _(\"Remove last file\")\n\n    def __init__(\n        self,\n        pdf_service: PdfService,\n        telegram_service: TelegramService,\n        language_service: LanguageService,\n    ) -> None:\n        self.pdf_service = pdf_service\n        self.telegram_service = telegram_service\n        self.language_service = language_service\n\n    async def ask_first_pdf(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        self.telegram_service.update_user_data(context, self._MERGE_PDF_DATA, [])\n        _ = self.language_service.set_app_language(update, context)\n        await self.telegram_service.reply_with_cancel_markup(\n            update,\n            context,\n            \"{desc_1}\\n\\n{desc_2}\".format(\n                desc_1=_(\"Send me the PDF files that you'll like to merge\"),\n                desc_2=_(\"Note that the files will be merged in the order that you send me\"),\n            ),\n        )\n\n        return self.WAIT_MERGE_PDF\n\n    async def check_pdf(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n\n        try:\n            doc = self.telegram_service.check_pdf_document(msg)\n        except TelegramServiceError as e:\n            await msg.reply_text(_(str(e)))\n            return self.WAIT_MERGE_PDF\n\n        try:\n            self._append_file_data(context, doc)\n        except TelegramServiceError as e:\n            await msg.reply_text(_(str(e)))\n            return ConversationHandler.END\n\n        return await self._ask_next_pdf(update, context)\n\n    async def check_text(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        text = msg.text\n\n        if text in [_(self._REMOVE_LAST), _(DONE)]:\n            try:\n                file_data_list = self.telegram_service.get_user_data(context, self._MERGE_PDF_DATA)\n            except TelegramServiceError as e:\n                await msg.reply_text(_(str(e)))\n                return ConversationHandler.END\n\n            if text == _(self._REMOVE_LAST):\n                return await self._remove_last_pdf(update, context, file_data_list)\n            return await self._preprocess_pdfs(update, context, file_data_list)\n        if text == _(CANCEL):\n            return await self.telegram_service.cancel_conversation(update, context)\n        return self.WAIT_MERGE_PDF\n\n    async def _ask_next_pdf(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        text = \"{desc}\\n\".format(desc=_(\"You've sent me these PDF files so far:\"))\n        await self.telegram_service.send_file_names(\n            msg.chat_id,\n            text,\n            context.user_data[self._MERGE_PDF_DATA],  # type: ignore[index]\n        )\n\n        reply_markup = ReplyKeyboardMarkup(\n            [[_(DONE)], [_(self._REMOVE_LAST), _(CANCEL)]],\n            resize_keyboard=True,\n            one_time_keyboard=True,\n        )\n        await msg.reply_text(\n            _(\n                \"Press {done} if you've sent me all the PDF files that \"\n                \"you'll like to merge or keep sending me the PDF files\"\n            ).format(done=f\"<b>{_(DONE)}</b>\"),\n            reply_markup=reply_markup,\n            parse_mode=ParseMode.HTML,\n        )\n\n        return self.WAIT_MERGE_PDF\n\n    async def _remove_last_pdf(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        file_data_list: list[FileData],\n    ) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n\n        try:\n            file_data = file_data_list.pop()\n        except IndexError:\n            await msg.reply_text(_(\"You've already removed all the PDF files you've sent me\"))\n            return await self.ask_first_pdf(update, context)\n\n        await msg.reply_text(\n            _(\"{file_name} has been removed for merging\").format(\n                file_name=f\"<b>{file_data.name}</b>\"\n            ),\n            parse_mode=ParseMode.HTML,\n        )\n\n        if file_data_list:\n            self.telegram_service.update_user_data(context, self._MERGE_PDF_DATA, file_data_list)\n            return await self._ask_next_pdf(update, context)\n        return await self.ask_first_pdf(update, context)\n\n    async def _preprocess_pdfs(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        file_data_list: list[FileData],\n    ) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        num_files = len(file_data_list)\n\n        if num_files == 0:\n            await msg.reply_text(_(\"You haven't sent me any PDF files\"))\n            return await self.ask_first_pdf(update, context)\n        if num_files == 1:\n            await msg.reply_text(_(\"You've only sent me one PDF file\"))\n            self.telegram_service.update_user_data(context, self._MERGE_PDF_DATA, file_data_list)\n            return await self._ask_next_pdf(update, context)\n        return await self._merge_pdfs(update, context, file_data_list)\n\n    async def _merge_pdfs(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        file_data_list: list[FileData],\n    ) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        await msg.reply_text(_(\"Merging your PDF files\"), reply_markup=ReplyKeyboardRemove())\n\n        try:\n            async with self.pdf_service.merge_pdfs(file_data_list) as out_path:\n                await self.telegram_service.send_file(update, context, out_path, TaskType.merge_pdf)\n        except PdfServiceError as e:\n            await msg.reply_text(_(str(e)))\n\n        return ConversationHandler.END\n\n    def _append_file_data(self, context: ContextTypes.DEFAULT_TYPE, document: Document) -> None:\n        file_data_list: list[FileData] = self.telegram_service.get_user_data(\n            context, self._MERGE_PDF_DATA\n        )\n        file_data = FileData.from_telegram_object(document)\n        file_data_list.append(file_data)\n        self.telegram_service.update_user_data(context, self._MERGE_PDF_DATA, file_data_list)\n"
  },
  {
    "path": "pdf_bot/models.py",
    "content": "from dataclasses import dataclass\nfrom pathlib import Path\n\nfrom telegram import Document, Message, PhotoSize\n\n\nclass BackData:\n    pass\n\n\nclass SupportData:\n    pass\n\n\n@dataclass\nclass FileData:\n    id: str\n    name: str | None = None\n\n    @classmethod\n    def from_telegram_object(cls, obj: Document | PhotoSize) -> \"FileData\":\n        if isinstance(obj, Document):\n            return cls(obj.file_id, obj.file_name)\n        return cls(obj.file_id)\n\n\n@dataclass\nclass TaskData:\n    label: str\n    data_type: type[FileData]\n\n    def get_file_data(self, obj: Document | PhotoSize) -> FileData:\n        return self.data_type.from_telegram_object(obj)\n\n\n@dataclass\nclass MessageData:\n    chat_id: int | str\n    message_id: int\n\n    @classmethod\n    def from_telegram_message(cls, message: Message) -> \"MessageData\":\n        return cls(message.chat_id, message.id)\n\n\n@dataclass\nclass FileTaskResult:\n    path: Path\n    message: str | None = None\n"
  },
  {
    "path": "pdf_bot/payment/__init__.py",
    "content": "from .models import PaymentData\nfrom .payment_handler import PaymentHandler\nfrom .payment_service import PaymentService\n\n__all__ = [\"PaymentData\", \"PaymentHandler\", \"PaymentService\"]\n"
  },
  {
    "path": "pdf_bot/payment/models.py",
    "content": "from pydantic import BaseModel\n\n\nclass PaymentData(BaseModel):\n    label: str\n    emoji: str\n    value: int\n"
  },
  {
    "path": "pdf_bot/payment/payment_handler.py",
    "content": "from telegram.ext import (\n    BaseHandler,\n    CallbackQueryHandler,\n    CommandHandler,\n    MessageHandler,\n    PreCheckoutQueryHandler,\n    filters,\n)\n\nfrom pdf_bot.models import SupportData\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\n\nfrom .models import PaymentData\nfrom .payment_service import PaymentService\n\n\nclass PaymentHandler(AbstractTelegramHandler):\n    _START_COMMAND = \"start\"\n    _SUPPORT_COMMAND = \"support\"\n\n    def __init__(self, payment_service: PaymentService) -> None:\n        self.payment_service = payment_service\n\n    @property\n    def handlers(self) -> list[BaseHandler]:\n        return [\n            CommandHandler(\n                self._START_COMMAND,\n                self.payment_service.send_support_options,\n                filters.Regex(\"support\"),\n            ),\n            CommandHandler(self._SUPPORT_COMMAND, self.payment_service.send_support_options),\n            CallbackQueryHandler(self.payment_service.send_support_options, pattern=SupportData),\n            CallbackQueryHandler(self.payment_service.send_invoice, pattern=PaymentData),\n            PreCheckoutQueryHandler(self.payment_service.precheckout_check),\n            MessageHandler(filters.SUCCESSFUL_PAYMENT, self.payment_service.successful_payment),\n        ]\n"
  },
  {
    "path": "pdf_bot/payment/payment_service.py",
    "content": "from gettext import gettext as _\nfrom typing import cast\n\nfrom telegram import (\n    CallbackQuery,\n    InlineKeyboardButton,\n    InlineKeyboardMarkup,\n    LabeledPrice,\n    Message,\n    PreCheckoutQuery,\n    ReplyKeyboardRemove,\n    Update,\n)\nfrom telegram.ext import ContextTypes\n\nfrom pdf_bot.errors import CallbackQueryDataTypeError\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.telegram_internal import TelegramService\n\nfrom .models import PaymentData\n\n\nclass PaymentService:\n    _INVOICE_PAYLOAD = \"invoice_payload\"\n    _CURRENCY = \"USD\"\n    _PAYMENT_MESSAGE = _(\"{message} {emoji} (${value})\")\n    _KEYBOARD_SIZE = 2\n\n    _PAYMENT_DATA_LIST = (\n        PaymentData(label=_(\"Say Thanks\"), emoji=\"😁\", value=1),\n        PaymentData(label=_(\"Coffee\"), emoji=\"☕\", value=3),\n        PaymentData(label=_(\"Beer\"), emoji=\"🍺\", value=5),\n        PaymentData(label=_(\"Meal\"), emoji=\"🍲\", value=10),\n    )\n\n    def __init__(\n        self,\n        language_service: LanguageService,\n        telegram_service: TelegramService,\n        stripe_token: str,\n    ) -> None:\n        self.language_service = language_service\n        self.telegram_service = telegram_service\n        self.stripe_token = stripe_token\n\n    async def send_support_options(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> None:\n        query: CallbackQuery | None = update.callback_query\n\n        # This method is used by both command and callback query handlers, so we need to\n        # check if query is `None` here\n        if query is not None:\n            await query.answer()\n\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        reply_markup = self._get_support_options_markup(update, context)\n        await msg.reply_text(_(\"Select how you want to support PDF Bot\"), reply_markup=reply_markup)\n\n    async def send_invoice(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:\n        query: CallbackQuery = cast(\"CallbackQuery\", update.callback_query)\n        await self.telegram_service.answer_query_and_drop_data(context, query)\n        data: str | PaymentData | None = query.data\n\n        if not isinstance(data, PaymentData):\n            raise CallbackQueryDataTypeError(data)\n\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        prices = [LabeledPrice(data.label, data.value * 100)]\n\n        await msg.reply_invoice(\n            title=_(\"Support PDF Bot\"),\n            description=_(\"Say thanks to PDF Bot and help keep it running\"),\n            payload=self._INVOICE_PAYLOAD,\n            provider_token=self.stripe_token,\n            currency=self._CURRENCY,\n            prices=prices,\n            max_tip_amount=1000,\n            suggested_tip_amounts=[100, 300, 500, 1000],\n        )\n\n    async def precheckout_check(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:\n        _ = self.language_service.set_app_language(update, context)\n        query = cast(\"PreCheckoutQuery\", update.pre_checkout_query)\n\n        if query.invoice_payload != self._INVOICE_PAYLOAD:\n            await query.answer(ok=False, error_message=_(\"Something went wrong, try again\"))\n        else:\n            await query.answer(ok=True)\n\n    async def successful_payment(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        await msg.reply_text(_(\"Thank you for your support!\"), reply_markup=ReplyKeyboardRemove())\n\n    def _get_support_options_markup(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> InlineKeyboardMarkup:\n        _ = self.language_service.set_app_language(update, context)\n        keyboard = [\n            [\n                InlineKeyboardButton(\n                    _(self._PAYMENT_MESSAGE).format(\n                        message=_(data.label), emoji=data.emoji, value=data.value\n                    ),\n                    callback_data=data,\n                )\n                for data in self._PAYMENT_DATA_LIST[i : i + self._KEYBOARD_SIZE]\n            ]\n            for i in range(0, len(self._PAYMENT_DATA_LIST), self._KEYBOARD_SIZE)\n        ]\n        keyboard.append(\n            [InlineKeyboardButton(_(\"Help translate PDF Bot\"), \"https://crwd.in/telegram-pdf-bot\")]\n        )\n\n        return InlineKeyboardMarkup(keyboard)\n"
  },
  {
    "path": "pdf_bot/pdf/__init__.py",
    "content": "from .exceptions import (\n    PdfDecryptError,\n    PdfEncryptedError,\n    PdfIncorrectPasswordError,\n    PdfNoTextError,\n    PdfReadError,\n    PdfServiceError,\n)\nfrom .models import CompressResult, FontData, ScaleByData, ScaleData, ScaleToData\nfrom .pdf_service import PdfService\n\n__all__ = [\n    \"CompressResult\",\n    \"FontData\",\n    \"PdfDecryptError\",\n    \"PdfEncryptedError\",\n    \"PdfIncorrectPasswordError\",\n    \"PdfNoTextError\",\n    \"PdfReadError\",\n    \"PdfService\",\n    \"PdfServiceError\",\n    \"PdfServiceError\",\n    \"ScaleByData\",\n    \"ScaleData\",\n    \"ScaleToData\",\n]\n"
  },
  {
    "path": "pdf_bot/pdf/exceptions.py",
    "content": "from gettext import gettext as _\n\n\nclass PdfServiceError(Exception):\n    pass\n\n\nclass PdfReadError(PdfServiceError):\n    pass\n\n\nclass PdfDecryptError(PdfServiceError):\n    pass\n\n\nclass PdfIncorrectPasswordError(PdfServiceError):\n    pass\n\n\nclass PdfNoTextError(PdfServiceError):\n    pass\n\n\nclass PdfNoImagesError(PdfServiceError):\n    pass\n\n\nclass PdfEncryptedError(PdfServiceError):\n    _MESSAGE = _(\"Your PDF file is encrypted, decrypt it first then try again\")\n\n    def __init__(self, *args: object, **kwargs: object) -> None:\n        super().__init__(self._MESSAGE, *args, **kwargs)\n"
  },
  {
    "path": "pdf_bot/pdf/models.py",
    "content": "from dataclasses import dataclass\nfrom pathlib import Path\n\nimport humanize\n\n\n@dataclass\nclass CompressResult:\n    old_size: int\n    new_size: int\n    out_path: Path\n\n    @property\n    def reduced_percentage(self) -> float:\n        return 1 - self.new_size / self.old_size\n\n    @property\n    def readable_old_size(self) -> str:\n        return self._readable_size(self.old_size)\n\n    @property\n    def readable_new_size(self) -> str:\n        return self._readable_size(self.new_size)\n\n    @staticmethod\n    def _readable_size(size: int) -> str:\n        return humanize.naturalsize(size)\n\n\n@dataclass\nclass FontData:\n    font_family: str\n    font_url: str\n\n\n@dataclass\nclass ScaleData:\n    x: float\n    y: float\n\n    def __str__(self) -> str:  # pragma: no cover\n        return f\"{self.x} {self.y}\"\n\n    @staticmethod\n    def from_string(value: str) -> \"ScaleData\":\n        x, y = map(float, value.split())\n        return ScaleData(x, y)\n\n\nclass ScaleByData(ScaleData):\n    pass\n\n\nclass ScaleToData(ScaleData):\n    pass\n"
  },
  {
    "path": "pdf_bot/pdf/pdf_service.py",
    "content": "import asyncio\nimport shutil\nimport textwrap\nfrom collections.abc import AsyncGenerator, Generator\nfrom contextlib import asynccontextmanager, contextmanager\nfrom gettext import gettext as _\nfrom pathlib import Path\n\nimport img2pdf\nimport ocrmypdf\nimport pdf2image\nimport pdf_diff\nfrom img2pdf import Rotation\nfrom ocrmypdf.exceptions import EncryptedPdfError, PriorOcrFoundError, TaggedPDFError\nfrom pdfCropMargins import crop\nfrom pdfminer.high_level import extract_text\nfrom pdfminer.pdfdocument import PDFPasswordIncorrect\nfrom pypdf import PasswordType, PdfReader, PdfWriter\nfrom pypdf.errors import PdfReadError as PyPdfReadError\nfrom pypdf.pagerange import PageRange\nfrom weasyprint import CSS, HTML\nfrom weasyprint.text.fonts import FontConfiguration\n\nfrom pdf_bot.cli import CLIService, CLIServiceError\nfrom pdf_bot.io_internal import IOService\nfrom pdf_bot.models import FileData\nfrom pdf_bot.pdf.exceptions import (\n    PdfDecryptError,\n    PdfEncryptedError,\n    PdfIncorrectPasswordError,\n    PdfNoImagesError,\n    PdfNoTextError,\n    PdfReadError,\n    PdfServiceError,\n)\nfrom pdf_bot.pdf.models import CompressResult, FontData, ScaleData\nfrom pdf_bot.telegram_internal import TelegramService\n\n\nclass PdfService:\n    def __init__(\n        self,\n        cli_service: CLIService,\n        io_service: IOService,\n        telegram_service: TelegramService,\n    ) -> None:\n        self.cli_service = cli_service\n        self.io_service = io_service\n        self.telegram_service = telegram_service\n\n    @asynccontextmanager\n    async def add_watermark_to_pdf(\n        self, source_file_id: str, watermark_file_id: str\n    ) -> AsyncGenerator[Path, None]:\n        src_reader, wmk_reader = await asyncio.gather(\n            self._open_pdf(source_file_id), self._open_pdf(watermark_file_id)\n        )\n        wmk_page = wmk_reader.pages[0]\n        writer = PdfWriter()\n\n        for page in src_reader.pages:\n            page.merge_page(wmk_page)\n            writer.add_page(page)\n\n        with self._write_pdf(writer, \"File_with_watermark\") as out_path:\n            yield out_path\n\n    @asynccontextmanager\n    async def grayscale_pdf(self, file_id: str) -> AsyncGenerator[Path, None]:\n        async with self.telegram_service.download_pdf_file(file_id) as file_path:\n            with (\n                self.io_service.create_temp_directory() as dir_name,\n                self.io_service.create_temp_pdf_file(\"Grayscale\") as out_path,\n            ):\n                images = pdf2image.convert_from_path(\n                    file_path,\n                    output_folder=dir_name,\n                    fmt=\"png\",\n                    grayscale=True,\n                    paths_only=True,\n                )\n\n                with out_path.open(\"wb\") as f:\n                    f.write(img2pdf.convert(images, rotation=Rotation.ifvalid))\n                yield out_path\n\n    @asynccontextmanager\n    async def compare_pdfs(self, file_id_a: str, file_id_b: str) -> AsyncGenerator[Path, None]:\n        async with (\n            self.telegram_service.download_pdf_file(file_id_a) as file_name_a,\n            self.telegram_service.download_pdf_file(file_id_b) as file_name_b,\n        ):\n            with self.io_service.create_temp_png_file(\"Differences\") as out_path:\n                pdf_diff.main(files=[file_name_a, file_name_b], out_file=out_path)\n                yield out_path\n\n    @asynccontextmanager\n    async def compress_pdf(self, file_id: str) -> AsyncGenerator[CompressResult, None]:\n        async with self.telegram_service.download_pdf_file(file_id) as file_path:\n            with self.io_service.create_temp_pdf_file(\"Compressed\") as out_path:\n                self.cli_service.compress_pdf(file_path, out_path)\n                old_size = file_path.stat().st_size\n                new_size = out_path.stat().st_size\n                yield CompressResult(old_size, new_size, out_path)\n\n    @asynccontextmanager\n    async def convert_pdf_to_images(self, file_id: str) -> AsyncGenerator[Path, None]:\n        async with self.telegram_service.download_pdf_file(file_id) as file_path:\n            with self.io_service.create_temp_directory(\"PDF_images\") as out_dir:\n                pdf2image.convert_from_path(file_path, output_folder=out_dir, fmt=\"png\")\n                yield out_dir\n\n    @asynccontextmanager\n    async def create_pdf_from_text(\n        self, text: str, font_data: FontData | None\n    ) -> AsyncGenerator[Path, None]:\n        html = HTML(string=\"<p>{content}</p>\".format(content=text.replace(\"\\n\", \"<br/>\")))\n        font_config = FontConfiguration()\n        stylesheets: list[CSS] | None = None\n\n        if font_data is not None:\n            stylesheets = [\n                CSS(\n                    string=(\n                        \"@font-face {\"\n                        f\"font-family: {font_data.font_family};\"\n                        f\"src: url({font_data.font_url});\"\n                        \"}\"\n                        \"p {\"\n                        f\"font-family: {font_data.font_family};\"\n                        \"}\"\n                    ),\n                    font_config=font_config,\n                )\n            ]\n\n        with self.io_service.create_temp_pdf_file(\"Text\") as out_path:\n            html.write_pdf(out_path, stylesheets=stylesheets, font_config=font_config)\n            yield out_path\n\n    @asynccontextmanager\n    async def crop_pdf_by_percentage(\n        self, file_id: str, percentage: float\n    ) -> AsyncGenerator[Path, None]:\n        async with self.telegram_service.download_pdf_file(file_id) as file_path:\n            with self.io_service.create_temp_pdf_file(\"Cropped\") as out_path:\n                crop([\"-p\", str(percentage), \"-o\", str(out_path), str(file_path)])\n                yield out_path\n\n    @asynccontextmanager\n    async def crop_pdf_by_margin_size(\n        self, file_id: str, margin_size: float\n    ) -> AsyncGenerator[Path, None]:\n        async with self.telegram_service.download_pdf_file(file_id) as file_path:\n            with self.io_service.create_temp_pdf_file(\"Cropped\") as out_path:\n                crop([\"-a\", str(margin_size), \"-o\", str(out_path), str(file_path)])\n                yield out_path\n\n    @asynccontextmanager\n    async def decrypt_pdf(self, file_id: str, password: str) -> AsyncGenerator[Path, None]:\n        reader = await self._open_pdf(file_id, allow_encrypted=True)\n        if not reader.is_encrypted:\n            raise PdfDecryptError(_(\"Your PDF file is not encrypted\"))\n\n        try:\n            if reader.decrypt(password) == PasswordType.NOT_DECRYPTED:\n                raise PdfIncorrectPasswordError(_(\"Incorrect password, please try again\"))\n        except NotImplementedError as e:\n            raise PdfDecryptError(\n                _(\"Your PDF file is encrypted with a method that I can't decrypt\")\n            ) from e\n\n        writer = PdfWriter()\n        for page in reader.pages:\n            writer.add_page(page)\n\n        with self._write_pdf(writer, \"Decrypted\") as out_path:\n            yield out_path\n\n    @asynccontextmanager\n    async def encrypt_pdf(self, file_id: str, password: str) -> AsyncGenerator[Path, None]:\n        reader = await self._open_pdf(file_id)\n        writer = PdfWriter()\n\n        for page in reader.pages:\n            writer.add_page(page)\n        writer.encrypt(password)\n\n        with self._write_pdf(writer, \"Encrypted\") as out_path:\n            yield out_path\n\n    @asynccontextmanager\n    async def extract_pdf_images(self, file_id: str) -> AsyncGenerator[Path, None]:\n        async with self.telegram_service.download_pdf_file(file_id) as file_path:\n            with self.io_service.create_temp_directory(\"PDF_images\") as out_dir:\n                try:\n                    self.cli_service.extract_pdf_images(file_path, out_dir)\n                except CLIServiceError as e:\n                    raise PdfServiceError(e) from e\n\n                if not any(out_dir.iterdir()):\n                    raise PdfNoImagesError(_(\"No images found in your PDF file\"))\n                yield out_dir\n\n    @asynccontextmanager\n    async def extract_pdf_text(self, file_id: str) -> AsyncGenerator[Path, None]:\n        async with self.telegram_service.download_pdf_file(file_id) as file_path:\n            try:\n                text = extract_text(file_path)\n            except PDFPasswordIncorrect as e:\n                raise PdfEncryptedError from e\n\n        if not text:\n            raise PdfNoTextError(_(\"No text found in your PDF file\"))\n\n        wrapped_text = textwrap.wrap(text)\n        with self.io_service.create_temp_txt_file(\"PDF_text\") as out_path:\n            with out_path.open(\"w\") as f:\n                f.write(\"\\n\".join(wrapped_text))\n            yield out_path\n\n    @asynccontextmanager\n    async def merge_pdfs(self, file_data_list: list[FileData]) -> AsyncGenerator[Path, None]:\n        file_ids = self._get_file_ids(file_data_list)\n        writer = PdfWriter()\n\n        async with self.telegram_service.download_files(file_ids) as file_paths:\n            for i, file_path in enumerate(file_paths):\n                try:\n                    writer.append(file_path)\n                except (PyPdfReadError, ValueError) as e:\n                    raise PdfReadError(\n                        _(\"I couldn't merge your PDF files as this file is invalid: %s\")\n                        % file_data_list[i].name\n                    ) from e\n\n        with self._write_pdf(writer, \"Merged\") as out_path:\n            yield out_path\n\n    @asynccontextmanager\n    async def ocr_pdf(self, file_id: str) -> AsyncGenerator[Path, None]:\n        async with self.telegram_service.download_pdf_file(file_id) as file_path:\n            with self.io_service.create_temp_pdf_file(\"OCR\") as out_path:\n                try:\n                    ocrmypdf.ocr(file_path, out_path, progress_bar=False)\n                    yield out_path\n                except (PriorOcrFoundError, TaggedPDFError) as e:\n                    raise PdfServiceError(_(\"Your PDF file already has a text layer\")) from e\n                except EncryptedPdfError as e:\n                    raise PdfEncryptedError from e\n\n    @asynccontextmanager\n    async def preview_pdf(self, file_id: str) -> AsyncGenerator[Path, None]:\n        with (\n            self.io_service.create_temp_pdf_file() as pdf_path,\n            self.io_service.create_temp_png_file(\"Preview\") as out_path,\n        ):\n            reader = await self._open_pdf(file_id)\n            writer = PdfWriter()\n            writer.add_page(reader.pages[0])\n            writer.write(pdf_path)\n\n            # Convert cover preview to image\n            imgs = pdf2image.convert_from_path(pdf_path, fmt=\"png\")\n            imgs[0].save(out_path)\n            yield out_path\n\n    @asynccontextmanager\n    async def rename_pdf(self, file_id: str, file_name: str) -> AsyncGenerator[Path, None]:\n        async with self.telegram_service.download_pdf_file(file_id) as file_path:\n            with self.io_service.create_temp_directory() as dir_name:\n                out_path = dir_name / file_name\n                shutil.copy(file_path, out_path)\n                yield out_path\n\n    @asynccontextmanager\n    async def rotate_pdf(self, file_id: str, degree: int) -> AsyncGenerator[Path, None]:\n        reader = await self._open_pdf(file_id)\n        writer = PdfWriter()\n\n        for page in reader.pages:\n            writer.add_page(page.rotate(degree))\n\n        with self._write_pdf(writer, \"Rotated\") as out_path:\n            yield out_path\n\n    @asynccontextmanager\n    async def scale_pdf_by_factor(\n        self, file_id: str, scale_data: ScaleData\n    ) -> AsyncGenerator[Path, None]:\n        reader = await self._open_pdf(file_id)\n        writer = PdfWriter()\n\n        for page in reader.pages:\n            page.scale(scale_data.x, scale_data.y)\n            writer.add_page(page)\n\n        with self._write_pdf(writer, \"Scaled\") as out_path:\n            yield out_path\n\n    @asynccontextmanager\n    async def scale_pdf_to_dimension(\n        self, file_id: str, scale_data: ScaleData\n    ) -> AsyncGenerator[Path, None]:\n        reader = await self._open_pdf(file_id)\n        writer = PdfWriter()\n\n        for page in reader.pages:\n            page.scale_to(scale_data.x, scale_data.y)\n            writer.add_page(page)\n\n        with self._write_pdf(writer, \"Scaled\") as out_path:\n            yield out_path\n\n    @staticmethod\n    def split_range_valid(split_range: str) -> bool:\n        return PageRange.valid(split_range)\n\n    @asynccontextmanager\n    async def split_pdf(self, file_id: str, split_range: str) -> AsyncGenerator[Path, None]:\n        reader = await self._open_pdf(file_id)\n        writer = PdfWriter()\n        writer.append(reader, pages=PageRange(split_range))\n\n        with self._write_pdf(writer, \"Split\") as out_path:\n            yield out_path\n\n    @staticmethod\n    def _get_file_ids(file_data_list: list[FileData]) -> list[str]:\n        return [x.id for x in file_data_list]\n\n    async def _open_pdf(self, file_id: str, allow_encrypted: bool = False) -> PdfReader:\n        async with self.telegram_service.download_pdf_file(file_id) as file_name:\n            try:\n                pdf_reader = PdfReader(file_name)\n            except PyPdfReadError as e:\n                raise PdfReadError(_(\"Your PDF file is invalid\")) from e\n\n        if pdf_reader.is_encrypted and not allow_encrypted:\n            raise PdfEncryptedError\n        return pdf_reader\n\n    @contextmanager\n    def _write_pdf(self, writer: PdfWriter, file_prefix: str) -> Generator[Path, None, None]:\n        with self.io_service.create_temp_pdf_file(file_prefix) as out_path:\n            writer.write(out_path)\n            yield out_path\n"
  },
  {
    "path": "pdf_bot/pdf_processor/__init__.py",
    "content": "from .abstract_pdf_processor import AbstractPdfProcessor\nfrom .abstract_pdf_select_and_text_processor import (\n    AbstractPdfSelectAndTextProcessor,\n    OptionAndInputData,\n    SelectOption,\n    SelectOptionData,\n)\nfrom .abstract_pdf_text_input_processor import (\n    AbstractPdfTextInputProcessor,\n    TextInputData,\n)\nfrom .compress_pdf_processor import CompressPdfData, CompressPdfProcessor\nfrom .crop_pdf_processor import (\n    CropOptionAndInputData,\n    CropPdfData,\n    CropPdfProcessor,\n    CropType,\n)\nfrom .decrypt_pdf_processor import DecryptPdfData, DecryptPdfProcessor\nfrom .encrypt_pdf_processor import EncryptPdfData, EncryptPdfProcessor\nfrom .extract_pdf_image_processor import ExtractPdfImageData, ExtractPdfImageProcessor\nfrom .extract_pdf_text_processor import ExtractPdfTextData, ExtractPdfTextProcessor\nfrom .grayscale_pdf_processor import GrayscalePdfData, GrayscalePdfProcessor\nfrom .ocr_pdf_processor import OcrPdfData, OcrPdfProcessor\nfrom .pdf_task_processor import PdfTaskProcessor\nfrom .pdf_to_image_processor import PdfToImageData, PdfToImageProcessor\nfrom .preview_pdf_processor import PreviewPdfData, PreviewPdfProcessor\nfrom .rename_pdf_processor import RenamePdfData, RenamePdfProcessor\nfrom .rotate_pdf_processor import RotateDegreeData, RotatePdfData, RotatePdfProcessor\nfrom .scale_pdf_processor import (\n    ScaleOptionAndInputData,\n    ScalePdfData,\n    ScalePdfProcessor,\n    ScaleType,\n)\nfrom .split_pdf_processor import SplitPdfData, SplitPdfProcessor\n\n__all__ = [\n    \"AbstractPdfProcessor\",\n    \"AbstractPdfSelectAndTextProcessor\",\n    \"AbstractPdfTextInputProcessor\",\n    \"CompressPdfData\",\n    \"CompressPdfProcessor\",\n    \"CropOptionAndInputData\",\n    \"CropPdfData\",\n    \"CropPdfProcessor\",\n    \"CropType\",\n    \"DecryptPdfData\",\n    \"DecryptPdfProcessor\",\n    \"EncryptPdfData\",\n    \"EncryptPdfProcessor\",\n    \"ExtractPdfImageData\",\n    \"ExtractPdfImageProcessor\",\n    \"ExtractPdfTextData\",\n    \"ExtractPdfTextProcessor\",\n    \"GrayscalePdfData\",\n    \"GrayscalePdfProcessor\",\n    \"OcrPdfData\",\n    \"OcrPdfProcessor\",\n    \"OptionAndInputData\",\n    \"PdfTaskProcessor\",\n    \"PdfToImageData\",\n    \"PdfToImageProcessor\",\n    \"PreviewPdfData\",\n    \"PreviewPdfProcessor\",\n    \"RenamePdfData\",\n    \"RenamePdfProcessor\",\n    \"RotateDegreeData\",\n    \"RotatePdfData\",\n    \"RotatePdfProcessor\",\n    \"ScaleOptionAndInputData\",\n    \"ScalePdfData\",\n    \"ScalePdfProcessor\",\n    \"ScaleType\",\n    \"SelectOption\",\n    \"SelectOptionData\",\n    \"SplitPdfData\",\n    \"SplitPdfProcessor\",\n    \"TextInputData\",\n]\n"
  },
  {
    "path": "pdf_bot/pdf_processor/abstract_pdf_processor.py",
    "content": "from typing import ClassVar\n\nfrom pdf_bot.file_processor import AbstractFileProcessor\nfrom pdf_bot.file_processor.errors import DuplicateClassError\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService, PdfServiceError\nfrom pdf_bot.telegram_internal import TelegramService\n\n\nclass AbstractPdfProcessor(AbstractFileProcessor):\n    _PDF_PROCESSORS: ClassVar[dict[str, \"AbstractPdfProcessor\"]] = {}\n\n    def __init__(\n        self,\n        pdf_service: PdfService,\n        telegram_service: TelegramService,\n        language_service: LanguageService,\n        bypass_init_check: bool = False,\n    ) -> None:\n        super().__init__(telegram_service, language_service, bypass_init_check)\n\n        self.pdf_service = pdf_service\n        cls_name = self.__class__.__name__\n\n        if not bypass_init_check and cls_name in self._PDF_PROCESSORS:\n            raise DuplicateClassError(cls_name)\n        self._PDF_PROCESSORS[cls_name] = self\n\n    @classmethod\n    def get_task_data_list(cls) -> list[TaskData]:\n        return [x.task_data for x in cls._PDF_PROCESSORS.values()]\n\n    @property\n    def generic_error_types(self) -> set[type[Exception]]:\n        return {PdfServiceError}\n"
  },
  {
    "path": "pdf_bot/pdf_processor/abstract_pdf_select_and_text_processor.py",
    "content": "from abc import abstractmethod\nfrom dataclasses import dataclass\nfrom enum import Enum\nfrom typing import Any, cast\n\nfrom telegram import CallbackQuery, InlineKeyboardButton, InlineKeyboardMarkup, Message, Update\nfrom telegram.ext import (\n    CallbackQueryHandler,\n    CommandHandler,\n    ContextTypes,\n    ConversationHandler,\n    MessageHandler,\n)\n\nfrom pdf_bot.consts import BACK, TEXT_FILTER\nfrom pdf_bot.errors import CallbackQueryDataTypeError, FileDataTypeError\nfrom pdf_bot.file_processor import AbstractFileTaskProcessor\nfrom pdf_bot.models import FileData\nfrom pdf_bot.telegram_internal import BackData\n\nfrom .abstract_pdf_processor import AbstractPdfProcessor\n\n\nclass SelectOption(Enum):\n    @property\n    @abstractmethod\n    def ask_value_text(self) -> str:\n        pass\n\n\n@dataclass(kw_only=True)\nclass SelectOptionData(FileData):\n    option: SelectOption\n\n\n@dataclass(kw_only=True)\nclass OptionAndInputData(SelectOptionData):\n    text: str | Any\n\n\nclass AbstractPdfSelectAndTextProcessor(AbstractPdfProcessor):\n    WAIT_SELECT_OPTION = \"wait_select_option\"\n    WAIT_TEXT_INPUT = \"wait_text_input\"\n\n    @property\n    @abstractmethod\n    def entry_point_data_type(self) -> type[FileData]:\n        pass\n\n    @property\n    @abstractmethod\n    def ask_select_option_text(self) -> str:\n        pass\n\n    @property\n    @abstractmethod\n    def select_option_type(self) -> type[SelectOption]:\n        pass\n\n    @abstractmethod\n    def get_cleaned_text_input(self, text: str) -> str | Any | None:\n        pass\n\n    @property\n    @abstractmethod\n    def invalid_text_input_error(self) -> str:\n        pass\n\n    @property\n    def option_and_input_data_type(self) -> type[OptionAndInputData]:\n        return OptionAndInputData\n\n    @property\n    def handler(self) -> ConversationHandler:\n        return ConversationHandler(\n            entry_points=[\n                CallbackQueryHandler(self._ask_select_option, pattern=self.entry_point_data_type)\n            ],\n            states={\n                self.WAIT_SELECT_OPTION: [\n                    CallbackQueryHandler(self._ask_text_input, pattern=SelectOptionData),\n                    CallbackQueryHandler(self.ask_task, pattern=BackData),\n                ],\n                self.WAIT_TEXT_INPUT: [\n                    MessageHandler(TEXT_FILTER, self._process_text_input),\n                    CallbackQueryHandler(\n                        self._ask_select_option, pattern=self.entry_point_data_type\n                    ),\n                ],\n            },\n            fallbacks=[CommandHandler(\"cancel\", self.telegram_service.cancel_conversation)],\n            map_to_parent={\n                # Return to wait file task state\n                AbstractFileTaskProcessor.WAIT_FILE_TASK: AbstractFileTaskProcessor.WAIT_FILE_TASK,\n            },\n        )\n\n    async def _ask_select_option(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> str:\n        query = cast(\"CallbackQuery\", update.callback_query)\n        await self.telegram_service.answer_query_and_drop_data(context, query)\n        data: str | FileData | None = query.data\n\n        if not isinstance(data, FileData):\n            raise CallbackQueryDataTypeError(data)\n\n        self.telegram_service.cache_file_data(context, data)\n        _ = self.language_service.set_app_language(update, context)\n\n        reply_markup = self._get_ask_select_option_markup(update, context, data)\n        await query.edit_message_text(_(self.ask_select_option_text), reply_markup=reply_markup)\n\n        return self.WAIT_SELECT_OPTION\n\n    def _get_ask_select_option_markup(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        query_data: FileData,\n    ) -> InlineKeyboardMarkup:\n        _ = self.language_service.set_app_language(update, context)\n        back_button = self.telegram_service.get_back_button(update, context)\n\n        keyboard = [\n            [\n                InlineKeyboardButton(\n                    _(option.value),\n                    callback_data=SelectOptionData(\n                        id=query_data.id, name=query_data.name, option=option\n                    ),\n                )\n                for option in self.select_option_type\n            ],\n            [back_button],\n        ]\n\n        return InlineKeyboardMarkup(keyboard)\n\n    async def _ask_text_input(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> str:\n        query = cast(\"CallbackQuery\", update.callback_query)\n        await self.telegram_service.answer_query_and_drop_data(context, query)\n        data: str | SelectOptionData | None = query.data\n\n        if not isinstance(data, SelectOptionData):\n            raise CallbackQueryDataTypeError(data)\n\n        self.telegram_service.cache_file_data(context, data)\n        _ = self.language_service.set_app_language(update, context)\n\n        reply_markup = self._get_ask_text_input_markup(update, context, data)\n        message = await query.edit_message_text(\n            _(data.option.ask_value_text), reply_markup=reply_markup\n        )\n        self.telegram_service.cache_message_data(context, message)\n\n        return self.WAIT_TEXT_INPUT\n\n    def _get_ask_text_input_markup(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        query_data: FileData,\n    ) -> InlineKeyboardMarkup:\n        _ = self.language_service.set_app_language(update, context)\n        keyboard = [\n            [\n                InlineKeyboardButton(\n                    _(BACK),\n                    callback_data=self.entry_point_data_type(query_data.id, query_data.name),\n                )\n            ]\n        ]\n        return InlineKeyboardMarkup(keyboard)\n\n    async def _process_text_input(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> str | int:\n        msg = cast(\"Message\", update.effective_message)\n        msg_text = cast(\"str\", msg.text)\n        cleaned_text = self.get_cleaned_text_input(msg_text)\n\n        if cleaned_text is None:\n            _ = self.language_service.set_app_language(update, context)\n            await msg.reply_text(_(self.invalid_text_input_error))\n            return self.WAIT_TEXT_INPUT\n\n        file_data = self.telegram_service.get_file_data(context)\n        if not isinstance(file_data, SelectOptionData):\n            raise FileDataTypeError(file_data)\n\n        option_input_data = self.option_and_input_data_type(\n            id=file_data.id,\n            name=file_data.name,\n            option=file_data.option,\n            text=cleaned_text,\n        )\n        self.telegram_service.cache_file_data(context, option_input_data)\n\n        return await self.process_file(update, context)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/abstract_pdf_text_input_processor.py",
    "content": "from abc import abstractmethod\nfrom collections.abc import Callable\nfrom dataclasses import dataclass\nfrom typing import cast\n\nfrom telegram import CallbackQuery, Message, Update\nfrom telegram.constants import ParseMode\nfrom telegram.ext import (\n    CallbackQueryHandler,\n    CommandHandler,\n    ContextTypes,\n    ConversationHandler,\n    MessageHandler,\n)\n\nfrom pdf_bot.consts import TEXT_FILTER\nfrom pdf_bot.file_processor import AbstractFileTaskProcessor\nfrom pdf_bot.models import FileData\nfrom pdf_bot.telegram_internal import BackData\nfrom pdf_bot.telegram_internal.exceptions import TelegramServiceError\n\nfrom .abstract_pdf_processor import AbstractPdfProcessor\n\n\n@dataclass(kw_only=True)\nclass TextInputData(FileData):\n    text: str\n\n\nclass AbstractPdfTextInputProcessor(AbstractPdfProcessor):\n    WAIT_TEXT_INPUT = \"wait_text_input\"\n\n    @property\n    @abstractmethod\n    def entry_point_data_type(self) -> type[FileData]:\n        pass\n\n    @abstractmethod\n    def get_ask_text_input_text(self, _: Callable[[str], str]) -> str:\n        pass\n\n    @abstractmethod\n    def get_cleaned_text_input(self, text: str) -> str | None:\n        pass\n\n    @property\n    @abstractmethod\n    def invalid_text_input_error(self) -> str:\n        pass\n\n    @property\n    def handler(self) -> ConversationHandler:\n        return ConversationHandler(\n            entry_points=[\n                CallbackQueryHandler(self._ask_text_input, pattern=self.entry_point_data_type)\n            ],\n            states={\n                self.WAIT_TEXT_INPUT: [\n                    MessageHandler(TEXT_FILTER, self._process_text_input),\n                    CallbackQueryHandler(self.ask_task, pattern=BackData),\n                ]\n            },\n            fallbacks=[CommandHandler(\"cancel\", self.telegram_service.cancel_conversation)],\n            map_to_parent={\n                # Return to wait file task state\n                AbstractFileTaskProcessor.WAIT_FILE_TASK: AbstractFileTaskProcessor.WAIT_FILE_TASK,\n            },\n        )\n\n    async def _ask_text_input(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> str:\n        query = cast(\"CallbackQuery\", update.callback_query)\n        await self.telegram_service.answer_query_and_drop_data(context, query)\n\n        _ = self.language_service.set_app_language(update, context)\n        reply_markup = self.telegram_service.get_back_inline_markup(update, context)\n        message = await query.edit_message_text(\n            self.get_ask_text_input_text(_),\n            parse_mode=ParseMode.HTML,\n            reply_markup=reply_markup,\n        )\n        self.telegram_service.cache_message_data(context, message)\n\n        return self.WAIT_TEXT_INPUT\n\n    async def _process_text_input(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> str | int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        msg_text = cast(\"str\", msg.text)\n        cleaned_text = self.get_cleaned_text_input(msg_text)\n\n        if cleaned_text is None:\n            await msg.reply_text(_(self.invalid_text_input_error))\n            return self.WAIT_TEXT_INPUT\n\n        try:\n            file_data = self.telegram_service.get_file_data(context)\n        except TelegramServiceError as e:\n            await msg.reply_text(_(str(e)))\n            return ConversationHandler.END\n\n        text_input_data = TextInputData(id=file_data.id, name=file_data.name, text=cleaned_text)\n        self.telegram_service.cache_file_data(context, text_input_data)\n\n        return await self.process_file(update, context)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/compress_pdf_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_pdf_processor import AbstractPdfProcessor\n\n\nclass CompressPdfData(FileData):\n    pass\n\n\nclass CompressPdfProcessor(AbstractPdfProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.compress_pdf\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Compress\"), CompressPdfData)\n\n    @property\n    def handler(self) -> CallbackQueryHandler:\n        return CallbackQueryHandler(self.process_file, pattern=CompressPdfData)\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        async with self.pdf_service.compress_pdf(file_data.id) as result:\n            yield FileTaskResult(\n                result.out_path,\n                _(\"File size reduced by {percent}, from {old_size} to {new_size}\").format(\n                    percent=f\"{result.reduced_percentage:.0%}\",\n                    old_size=result.readable_old_size,\n                    new_size=result.readable_new_size,\n                ),\n            )\n"
  },
  {
    "path": "pdf_bot/pdf_processor/crop_pdf_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import FileDataTypeError\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_pdf_select_and_text_processor import (\n    AbstractPdfSelectAndTextProcessor,\n    OptionAndInputData,\n    SelectOption,\n)\n\n\nclass CropType(SelectOption):\n    by_percentage = _(\"By percentage\")\n    by_margin_size = _(\"To margin size\")\n\n    @property\n    def ask_value_text(self) -> str:  # pragma: no cover\n        match self:\n            case CropType.by_percentage:\n                return _(\n                    \"Send me a number between 0 and 100\\n\\nThis is the percentage of\"\n                    \" margin space to retain between the content in your PDF file and\"\n                    \" the page\"\n                )\n            case CropType.by_margin_size:\n                return _(\n                    \"Send me a number that you'll like to adjust the margin\"\n                    \" size\\n\\nPositive numbers will decrease the margin size and\"\n                    \" negative numbers will increase it\"\n                )\n\n\nclass CropPdfData(FileData):\n    pass\n\n\nclass CropOptionAndInputData(OptionAndInputData):\n    text: float\n\n\nclass CropPdfProcessor(AbstractPdfSelectAndTextProcessor):\n    @property\n    def entry_point_data_type(self) -> type[CropPdfData]:\n        return CropPdfData\n\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.crop_pdf\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Crop\"), self.entry_point_data_type)\n\n    @property\n    def ask_select_option_text(self) -> str:  # pragma: no cover\n        return _(\"Select the crop type you'll like to perform\")\n\n    @property\n    def select_option_type(self) -> type[CropType]:\n        return CropType\n\n    @property\n    def invalid_text_input_error(self) -> str:  # pragma: no cover\n        return _(\"The crop values are invalid, try again\")\n\n    @property\n    def option_and_input_data_type(self) -> type[CropOptionAndInputData]:\n        return CropOptionAndInputData\n\n    def get_cleaned_text_input(self, text: str) -> float | None:\n        try:\n            return float(text)\n        except ValueError:\n            return None\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        if not isinstance(file_data, CropOptionAndInputData):\n            raise FileDataTypeError(file_data)\n\n        if file_data.option == CropType.by_percentage:\n            async with self.pdf_service.crop_pdf_by_percentage(\n                file_data.id, file_data.text\n            ) as path:\n                yield FileTaskResult(path)\n        if file_data.option == CropType.by_margin_size:\n            async with self.pdf_service.crop_pdf_by_margin_size(\n                file_data.id, file_data.text\n            ) as path:\n                yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/decrypt_pdf_processor.py",
    "content": "from collections.abc import AsyncGenerator, Callable\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\nfrom typing import cast\n\nfrom telegram import Message, Update\nfrom telegram.ext import ContextTypes\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import FileDataTypeError\nfrom pdf_bot.file_processor import ErrorHandlerType\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\nfrom pdf_bot.pdf import PdfIncorrectPasswordError\n\nfrom .abstract_pdf_text_input_processor import AbstractPdfTextInputProcessor, TextInputData\n\n\nclass DecryptPdfData(FileData):\n    pass\n\n\nclass DecryptPdfProcessor(AbstractPdfTextInputProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.decrypt_pdf\n\n    @property\n    def entry_point_data_type(self) -> type[DecryptPdfData]:\n        return DecryptPdfData\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Decrypt\"), self.entry_point_data_type)\n\n    @property\n    def invalid_text_input_error(self) -> str:  # pragma: no cover\n        return \"\"\n\n    def get_ask_text_input_text(self, _: Callable[[str], str]) -> str:  # pragma: no cover\n        return _(\"Send me the password to decrypt your PDF file\")\n\n    def get_cleaned_text_input(self, text: str) -> str:\n        return text\n\n    @property\n    def custom_error_handlers(self) -> dict[type[Exception], ErrorHandlerType]:\n        return {PdfIncorrectPasswordError: self._handle_incorrect_password}\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        if not isinstance(file_data, TextInputData):\n            raise FileDataTypeError(file_data)\n\n        async with self.pdf_service.decrypt_pdf(file_data.id, file_data.text) as path:\n            yield FileTaskResult(path)\n\n    async def _handle_incorrect_password(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        exception: Exception,\n        file_data: FileData,\n    ) -> str:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        await msg.reply_text(_(str(exception)))\n        self.telegram_service.cache_file_data(context, file_data)\n\n        return self.WAIT_TEXT_INPUT\n"
  },
  {
    "path": "pdf_bot/pdf_processor/encrypt_pdf_processor.py",
    "content": "from collections.abc import AsyncGenerator, Callable\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import FileDataTypeError\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_pdf_text_input_processor import AbstractPdfTextInputProcessor, TextInputData\n\n\nclass EncryptPdfData(FileData):\n    pass\n\n\nclass EncryptPdfProcessor(AbstractPdfTextInputProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.encrypt_pdf\n\n    @property\n    def entry_point_data_type(self) -> type[EncryptPdfData]:\n        return EncryptPdfData\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Encrypt\"), self.entry_point_data_type)\n\n    @property\n    def invalid_text_input_error(self) -> str:  # pragma: no cover\n        return \"\"\n\n    def get_ask_text_input_text(self, _: Callable[[str], str]) -> str:  # pragma: no cover\n        return _(\"Send me the password to encrypt your PDF file\")\n\n    def get_cleaned_text_input(self, text: str) -> str:\n        return text\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        if not isinstance(file_data, TextInputData):\n            raise FileDataTypeError(file_data)\n\n        async with self.pdf_service.encrypt_pdf(file_data.id, file_data.text) as path:\n            yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/extract_pdf_image_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_pdf_processor import AbstractPdfProcessor\n\n\nclass ExtractPdfImageData(FileData):\n    pass\n\n\nclass ExtractPdfImageProcessor(AbstractPdfProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.get_pdf_image\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Extract images\"), ExtractPdfImageData)\n\n    @property\n    def handler(self) -> CallbackQueryHandler:\n        return CallbackQueryHandler(self.process_file, pattern=ExtractPdfImageData)\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        async with self.pdf_service.extract_pdf_images(file_data.id) as path:\n            yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/extract_pdf_text_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_pdf_processor import AbstractPdfProcessor\n\n\nclass ExtractPdfTextData(FileData):\n    pass\n\n\nclass ExtractPdfTextProcessor(AbstractPdfProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.get_pdf_text\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Extract text\"), ExtractPdfTextData)\n\n    @property\n    def handler(self) -> CallbackQueryHandler:\n        return CallbackQueryHandler(self.process_file, pattern=ExtractPdfTextData)\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        async with self.pdf_service.extract_pdf_text(file_data.id) as path:\n            yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/grayscale_pdf_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_pdf_processor import AbstractPdfProcessor\n\n\nclass GrayscalePdfData(FileData):\n    pass\n\n\nclass GrayscalePdfProcessor(AbstractPdfProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.grayscale_pdf\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Grayscale\"), GrayscalePdfData)\n\n    @property\n    def handler(self) -> CallbackQueryHandler:\n        return CallbackQueryHandler(self.process_file, pattern=GrayscalePdfData)\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        async with self.pdf_service.grayscale_pdf(file_data.id) as path:\n            yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/ocr_pdf_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\n\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_pdf_processor import AbstractPdfProcessor\n\n\nclass OcrPdfData(FileData):\n    pass\n\n\nclass OcrPdfProcessor(AbstractPdfProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.ocr_pdf\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(\"OCR\", OcrPdfData)\n\n    @property\n    def handler(self) -> CallbackQueryHandler:\n        return CallbackQueryHandler(self.process_file, pattern=OcrPdfData)\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        async with self.pdf_service.ocr_pdf(file_data.id) as path:\n            yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/pdf_task_processor.py",
    "content": "from pdf_bot.file_processor import AbstractFileTaskProcessor\n\nfrom .abstract_pdf_processor import AbstractPdfProcessor\n\n\nclass PdfTaskProcessor(AbstractFileTaskProcessor):\n    @property\n    def processor_type(self) -> type[AbstractPdfProcessor]:\n        return AbstractPdfProcessor\n"
  },
  {
    "path": "pdf_bot/pdf_processor/pdf_to_image_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_pdf_processor import AbstractPdfProcessor\n\n\nclass PdfToImageData(FileData):\n    pass\n\n\nclass PdfToImageProcessor(AbstractPdfProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.pdf_to_image\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"To images\"), PdfToImageData)\n\n    @property\n    def handler(self) -> CallbackQueryHandler:\n        return CallbackQueryHandler(self.process_file, pattern=PdfToImageData)\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        async with self.pdf_service.convert_pdf_to_images(file_data.id) as path:\n            yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/preview_pdf_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_pdf_processor import AbstractPdfProcessor\n\n\nclass PreviewPdfData(FileData):\n    pass\n\n\nclass PreviewPdfProcessor(AbstractPdfProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.preview_pdf\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Preview\"), PreviewPdfData)\n\n    @property\n    def handler(self) -> CallbackQueryHandler:\n        return CallbackQueryHandler(self.process_file, pattern=PreviewPdfData)\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        async with self.pdf_service.preview_pdf(file_data.id) as path:\n            yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/rename_pdf_processor.py",
    "content": "import re\nfrom collections.abc import AsyncGenerator, Callable\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import FileDataTypeError\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_pdf_text_input_processor import AbstractPdfTextInputProcessor, TextInputData\n\n\nclass RenamePdfData(FileData):\n    pass\n\n\nclass RenamePdfProcessor(AbstractPdfTextInputProcessor):\n    INVALID_CHARACTERS = r\"\\/*?:\\'<>|\"\n\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.rename_pdf\n\n    @property\n    def entry_point_data_type(self) -> type[RenamePdfData]:\n        return RenamePdfData\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Rename\"), self.entry_point_data_type)\n\n    @property\n    def invalid_text_input_error(self) -> str:  # pragma: no cover\n        return (\n            _(\"File names can't contain any of the following characters, please try again:\\n%s\")\n            % self.INVALID_CHARACTERS\n        )\n\n    def get_ask_text_input_text(self, _: Callable[[str], str]) -> str:  # pragma: no cover\n        return _(\"Send me the file name that you'll like to rename your PDF file into\")\n\n    def get_cleaned_text_input(self, text: str) -> str | None:\n        cleaned_text = re.sub(r\"\\.pdf$\", \"\", text)\n        if set(cleaned_text) & set(self.INVALID_CHARACTERS):\n            return None\n        return f\"{cleaned_text}.pdf\"\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        if not isinstance(file_data, TextInputData):\n            raise FileDataTypeError(file_data)\n\n        async with self.pdf_service.rename_pdf(file_data.id, file_data.text) as path:\n            yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/rotate_pdf_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom dataclasses import dataclass\nfrom gettext import gettext as _\nfrom typing import cast\n\nfrom telegram import CallbackQuery, InlineKeyboardButton, InlineKeyboardMarkup, Update\nfrom telegram.ext import CallbackQueryHandler, CommandHandler, ContextTypes, ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import CallbackQueryDataTypeError, FileDataTypeError\nfrom pdf_bot.file_processor import AbstractFileTaskProcessor\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\nfrom pdf_bot.telegram_internal import BackData\n\nfrom .abstract_pdf_processor import AbstractPdfProcessor\n\n\nclass RotatePdfData(FileData):\n    pass\n\n\n@dataclass(kw_only=True)\nclass RotateDegreeData(RotatePdfData):\n    degree: int\n\n\nclass RotatePdfProcessor(AbstractPdfProcessor):\n    _WAIT_DEGREE = \"wait_degree\"\n    _DEGREES = (90, 180, 270)\n\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.rotate_pdf\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Rotate\"), RotatePdfData)\n\n    @property\n    def handler(self) -> ConversationHandler:\n        return ConversationHandler(\n            entry_points=[CallbackQueryHandler(self.ask_degree, pattern=RotatePdfData)],\n            states={\n                self._WAIT_DEGREE: [\n                    CallbackQueryHandler(self.process_file, pattern=RotateDegreeData),\n                    CallbackQueryHandler(self.ask_task, pattern=BackData),\n                ]\n            },\n            fallbacks=[CommandHandler(\"cancel\", self.telegram_service.cancel_conversation)],\n            map_to_parent={\n                # Return to wait file task state\n                AbstractFileTaskProcessor.WAIT_FILE_TASK: AbstractFileTaskProcessor.WAIT_FILE_TASK,\n            },\n        )\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        if not isinstance(file_data, RotateDegreeData):\n            raise FileDataTypeError(file_data)\n\n        async with self.pdf_service.rotate_pdf(file_data.id, file_data.degree) as path:\n            yield FileTaskResult(path)\n\n    async def ask_degree(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> str:\n        query = cast(\"CallbackQuery\", update.callback_query)\n        await self.telegram_service.answer_query_and_drop_data(context, query)\n        data: str | RotatePdfData | None = query.data\n\n        if not isinstance(data, RotatePdfData):\n            raise CallbackQueryDataTypeError(data)\n\n        reply_markup = self._get_ask_degree_reply_markup(update, context, data)\n        _ = self.language_service.set_app_language(update, context)\n        await query.edit_message_text(\n            _(\"Select the degrees that you'll like to rotate your PDF file in clockwise\"),\n            reply_markup=reply_markup,\n        )\n\n        return self._WAIT_DEGREE\n\n    def _get_ask_degree_reply_markup(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        rotate_data: RotatePdfData,\n    ) -> InlineKeyboardMarkup:\n        back_button = self.telegram_service.get_back_button(update, context)\n        keyboard = [\n            [\n                InlineKeyboardButton(\n                    str(degree),\n                    callback_data=RotateDegreeData(\n                        id=rotate_data.id, name=rotate_data.name, degree=degree\n                    ),\n                )\n                for degree in self._DEGREES\n            ],\n            [back_button],\n        ]\n\n        return InlineKeyboardMarkup(keyboard)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/scale_pdf_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import FileDataTypeError\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\nfrom pdf_bot.pdf import ScaleData\n\nfrom .abstract_pdf_select_and_text_processor import (\n    AbstractPdfSelectAndTextProcessor,\n    OptionAndInputData,\n    SelectOption,\n)\n\n\nclass ScaleType(SelectOption):\n    by_factor = _(\"By factor\")\n    to_dimension = _(\"To dimension\")\n\n    @property\n    def ask_value_text(self) -> str:  # pragma: no cover\n        match self:\n            case ScaleType.by_factor:\n                return _(\n                    \"Send me the scaling factors for the horizontal and vertical\"\n                    \" axes\\n\\nExample: 2 0.5 - this will double the horizontal axis and\"\n                    \" halve the vertical axis\"\n                )\n            case ScaleType.to_dimension:\n                return _(\n                    \"Send me the width and height\\n\\nExample: 150 200 - this will set\"\n                    \" the width to 150 and height to 200\"\n                )\n\n\nclass ScalePdfData(FileData):\n    pass\n\n\nclass ScaleOptionAndInputData(OptionAndInputData):\n    text: ScaleData\n\n\nclass ScalePdfProcessor(AbstractPdfSelectAndTextProcessor):\n    @property\n    def entry_point_data_type(self) -> type[ScalePdfData]:\n        return ScalePdfData\n\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.scale_pdf\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Scale\"), self.entry_point_data_type)\n\n    @property\n    def ask_select_option_text(self) -> str:  # pragma: no cover\n        return _(\"Select the scale type you'll like to perform\")\n\n    @property\n    def select_option_type(self) -> type[ScaleType]:\n        return ScaleType\n\n    @property\n    def invalid_text_input_error(self) -> str:  # pragma: no cover\n        return _(\"The scale values are invalid, try again\")\n\n    @property\n    def option_and_input_data_type(self) -> type[ScaleOptionAndInputData]:\n        return ScaleOptionAndInputData\n\n    def get_cleaned_text_input(self, text: str) -> ScaleData | None:\n        try:\n            return ScaleData.from_string(text)\n        except ValueError:\n            return None\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        if not isinstance(file_data, ScaleOptionAndInputData):\n            raise FileDataTypeError(file_data)\n\n        if file_data.option == ScaleType.by_factor:\n            async with self.pdf_service.scale_pdf_by_factor(file_data.id, file_data.text) as path:\n                yield FileTaskResult(path)\n        if file_data.option == ScaleType.to_dimension:\n            async with self.pdf_service.scale_pdf_to_dimension(\n                file_data.id, file_data.text\n            ) as path:\n                yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/pdf_processor/split_pdf_processor.py",
    "content": "from collections.abc import AsyncGenerator, Callable\nfrom contextlib import asynccontextmanager\nfrom gettext import gettext as _\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import FileDataTypeError\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\n\nfrom .abstract_pdf_text_input_processor import AbstractPdfTextInputProcessor, TextInputData\n\n\nclass SplitPdfData(FileData):\n    pass\n\n\nclass SplitPdfProcessor(AbstractPdfTextInputProcessor):\n    WAIT_SPLIT_RANGE = \"wait_split_range\"\n\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.split_pdf\n\n    @property\n    def entry_point_data_type(self) -> type[SplitPdfData]:\n        return SplitPdfData\n\n    @property\n    def task_data(self) -> TaskData:\n        return TaskData(_(\"Split\"), self.entry_point_data_type)\n\n    @property\n    def invalid_text_input_error(self) -> str:  # pragma: no cover\n        return _(\"The split range is invalid, please try again\")\n\n    def get_ask_text_input_text(self, _: Callable[[str], str]) -> str:  # pragma: no cover\n        return (\n            \"{intro}\\n\\n\"\n            \"<b>{general}</b>\\n\"\n            \"<code>{all}</code>\\n\"\n            \"<code>{eight_only}</code>\\n\"\n            \"<code>{first_three}</code>\\n\"\n            \"<code>{from_eight}</code>\\n\"\n            \"<code>{last_only}</code>\\n\"\n            \"<code>{all_except_last}</code>\\n\"\n            \"<code>{second_last}</code>\\n\"\n            \"<code>{last_two}</code>\\n\"\n            \"<code>{third_second}</code>\\n\\n\"\n            \"<b>{advanced}</b>\\n\"\n            \"<code>{pages_to_end}</code>\\n\"\n            \"<code>{odd_pages}</code>\\n\"\n            \"<code>{all_reversed}</code>\\n\"\n            \"<code>{pages_except}</code>\\n\"\n            \"<code>{pages_reverse_from}</code>\"\n        ).format(\n            intro=_(\"Send me the range of pages that you'll like to keep\"),\n            general=_(\"General usage\"),\n            all=_(\"{range}      all pages\").format(range=\":\"),\n            eight_only=_(\"{range}      page 8 only\").format(range=\"7\"),\n            first_three=_(\"{range}    first three pages\").format(range=\"0:3\"),\n            from_eight=_(\"{range}     from page 8 onward\").format(range=\"7:\"),\n            last_only=_(\"{range}     last page only\").format(range=\"-1\"),\n            all_except_last=_(\"{range}    all pages except the last page\").format(range=\":-1\"),\n            second_last=_(\"{range}     second last page only\").format(range=\"-2\"),\n            last_two=_(\"{range}    last two pages\").format(range=\"-2:\"),\n            third_second=_(\"{range}  third and second last pages\").format(range=\"-3:-1\"),\n            advanced=_(\"Advanced usage\"),\n            pages_to_end=_(\"{range}    pages {pages} and to the end\").format(\n                range=\"::2\", pages=\"0 2 4 ...\"\n            ),\n            odd_pages=_(\"{range} pages {pages}\").format(range=\"1:10:2\", pages=\"1 3 5 7 9\"),\n            all_reversed=_(\"{range}   all pages in reversed order\").format(range=\"::-1\"),\n            pages_except=_(\"{range} pages {pages} except {page}\").format(\n                range=\"3:0:-1\", pages=\"3 2 1\", page=\"0\"\n            ),\n            pages_reverse_from=_(\"{range}  pages {pages}\").format(range=\"2::-1\", pages=\"2 1 0\"),\n        )\n\n    def get_cleaned_text_input(self, text: str) -> str | None:\n        if not self.pdf_service.split_range_valid(text):\n            return None\n        return text\n\n    @asynccontextmanager\n    async def process_file_task(self, file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        if not isinstance(file_data, TextInputData):\n            raise FileDataTypeError(file_data)\n\n        async with self.pdf_service.split_pdf(file_data.id, file_data.text) as path:\n            yield FileTaskResult(path)\n"
  },
  {
    "path": "pdf_bot/settings.py",
    "content": "from pathlib import Path\n\nfrom pydantic import Field\nfrom pydantic_settings import BaseSettings, SettingsConfigDict\n\n\nclass Settings(BaseSettings):\n    model_config = SettingsConfigDict(\n        extra=\"ignore\", env_file=[Path(\".env.test\"), Path(\".env\")], env_file_encoding=\"utf-8\"\n    )\n\n    telegram_token: str = Field(...)\n    slack_token: str = Field(...)\n    stripe_token: str = Field(...)\n    google_fonts_token: str = Field(...)\n    ga_api_secret: str = Field(...)\n    ga_measurement_id: str = Field(...)\n    gcp_service_account: dict = Field(...)\n    sentry_dsn: str | None = Field(default=None)\n\n    admin_telegram_id: int = Field(...)\n\n    app_url: str | None = Field(default=None)\n    port: int = Field(default=8443)\n\n    request_connection_pool_size: int = 12\n    request_read_timeout: int = 45\n    request_write_timeout: int = 45\n    request_connect_timeout: int = 45\n    request_pool_timeout: int = 45\n\n    telegram_max_retries: int = 2\n"
  },
  {
    "path": "pdf_bot/telegram_handler/__init__.py",
    "content": "from .abstract_telegram_handler import AbstractTelegramHandler\n\n__all__ = [\"AbstractTelegramHandler\"]\n"
  },
  {
    "path": "pdf_bot/telegram_handler/abstract_telegram_handler.py",
    "content": "from abc import ABC, abstractmethod\n\nfrom telegram.ext import BaseHandler\n\n\nclass AbstractTelegramHandler(ABC):\n    @property\n    @abstractmethod\n    def handlers(self) -> list[BaseHandler]:\n        pass\n"
  },
  {
    "path": "pdf_bot/telegram_internal/__init__.py",
    "content": "from .exceptions import (\n    TelegramFileMimeTypeError,\n    TelegramFileTooLargeError,\n    TelegramGetUserDataError,\n    TelegramImageNotFoundError,\n    TelegramServiceError,\n    TelegramUpdateUserDataError,\n)\nfrom .telegram_service import BackData, TelegramService\n\n__all__ = [\n    \"BackData\",\n    \"TelegramFileMimeTypeError\",\n    \"TelegramFileTooLargeError\",\n    \"TelegramGetUserDataError\",\n    \"TelegramImageNotFoundError\",\n    \"TelegramService\",\n    \"TelegramServiceError\",\n    \"TelegramUpdateUserDataError\",\n]\n"
  },
  {
    "path": "pdf_bot/telegram_internal/exceptions.py",
    "content": "class TelegramServiceError(Exception):\n    pass\n\n\nclass TelegramFileMimeTypeError(TelegramServiceError):\n    pass\n\n\nclass TelegramFileTooLargeError(TelegramServiceError):\n    pass\n\n\nclass TelegramGetUserDataError(TelegramServiceError):\n    pass\n\n\nclass TelegramUpdateUserDataError(TelegramServiceError):\n    pass\n\n\nclass TelegramImageNotFoundError(TelegramServiceError):\n    pass\n"
  },
  {
    "path": "pdf_bot/telegram_internal/telegram_service.py",
    "content": "from collections.abc import AsyncGenerator, Coroutine\nfrom contextlib import asynccontextmanager, suppress\nfrom gettext import gettext as _\nfrom pathlib import Path\nfrom typing import Any, cast\n\nfrom pydantic import BaseModel\nfrom telegram import (\n    Bot,\n    CallbackQuery,\n    Document,\n    InlineKeyboardButton,\n    InlineKeyboardMarkup,\n    Message,\n    PhotoSize,\n    ReplyKeyboardMarkup,\n    ReplyKeyboardRemove,\n    Update,\n)\nfrom telegram.constants import ChatAction, FileSizeLimit, MessageLimit, ParseMode\nfrom telegram.ext import ContextTypes, ConversationHandler\n\nfrom pdf_bot.analytics import AnalyticsService, EventAction, TaskType\nfrom pdf_bot.consts import BACK, CANCEL, CHANNEL_NAME, FILE_DATA, MESSAGE_DATA\nfrom pdf_bot.io_internal import IOService\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.models import BackData, FileData, MessageData, SupportData\n\nfrom .exceptions import (\n    TelegramFileMimeTypeError,\n    TelegramFileTooLargeError,\n    TelegramGetUserDataError,\n    TelegramImageNotFoundError,\n    TelegramUpdateUserDataError,\n)\n\n\nclass _ReplyData(BaseModel):\n    text: str\n    markup_button_text: str\n    parse_mode: ParseMode | None = None\n\n\nclass TelegramService:\n    IMAGE_MIME_TYPE_PREFIX = \"image\"\n    PDF_MIME_TYPE_SUFFIX = \"pdf\"\n    PNG_SUFFIX = \".png\"\n    BACK = _(\"Back\")\n    MESSAGE_TRUNCATED = \"\\n...\"\n\n    def __init__(\n        self,\n        io_service: IOService,\n        language_service: LanguageService,\n        analytics_service: AnalyticsService,\n        bot: Bot,\n    ) -> None:\n        self.io_service = io_service\n        self.language_service = language_service\n        self.analytics_service = analytics_service\n        self.bot = bot\n\n    @staticmethod\n    def check_file_size(file: Document | PhotoSize) -> None:\n        file_size = file.file_size\n        if file_size is not None and file_size > FileSizeLimit.FILESIZE_DOWNLOAD:\n            raise TelegramFileTooLargeError(\n                _(\n                    \"Your file is too large for me to download and process, \"\n                    \"please try again with a different file\\n\\n\"\n                    \"Note that this limit is enforced by Telegram and there's \"\n                    \"nothing I can do unless Telegram changes it\"\n                )\n            )\n\n    @staticmethod\n    def check_file_upload_size(path: Path) -> None:\n        if path.stat().st_size > FileSizeLimit.FILESIZE_UPLOAD:\n            raise TelegramFileTooLargeError(\n                _(\n                    \"The file is too large for me to send to you\\n\\n\"\n                    \"Note that this limit is enforced by Telegram and there's \"\n                    \"nothing I can do unless Telegram changes it\"\n                )\n            )\n\n    @staticmethod\n    def get_user_data(context: ContextTypes.DEFAULT_TYPE, key: str) -> Any:\n        \"\"\"Get and pop value from user data by the provided key.\n\n        Args:\n            context (CallbackContext): the Telegram callback context\n            key (str): the key for the value in user data\n\n        Raises:\n            TelegramUserDataError: if user_data does not exist or the key does not exist\n                in user data\n\n        Returns:\n            Any: the value for the key\n        \"\"\"\n        err = TelegramGetUserDataError(_(\"Something went wrong, please try again\"))\n        if context.user_data is None:\n            raise err\n\n        data = context.user_data.pop(key, None)\n        if data is None:\n            raise err\n        return data\n\n    @staticmethod\n    def user_data_contains(context: ContextTypes.DEFAULT_TYPE, key: str) -> bool:\n        return context.user_data is not None and key in context.user_data\n\n    @staticmethod\n    def update_user_data(context: ContextTypes.DEFAULT_TYPE, key: str, value: Any) -> None:\n        if context.user_data is None:\n            raise TelegramUpdateUserDataError(_(\"Something went wrong, please try again\"))\n        context.user_data[key] = value\n\n    def get_file_data(self, context: ContextTypes.DEFAULT_TYPE) -> FileData:\n        data: FileData = self.get_user_data(context, FILE_DATA)\n        return data\n\n    def cache_file_data(self, context: ContextTypes.DEFAULT_TYPE, file_data: FileData) -> None:\n        self.update_user_data(context, FILE_DATA, file_data)\n\n    def get_message_data(self, context: ContextTypes.DEFAULT_TYPE) -> MessageData:\n        data: MessageData = self.get_user_data(context, MESSAGE_DATA)\n        return data\n\n    def cache_message_data(\n        self, context: ContextTypes.DEFAULT_TYPE, message: Message | bool\n    ) -> None:\n        if not isinstance(message, Message):\n            return\n\n        with suppress(TelegramUpdateUserDataError):\n            self.update_user_data(context, MESSAGE_DATA, MessageData.from_telegram_message(message))\n\n    async def answer_query_and_drop_data(\n        self, context: ContextTypes.DEFAULT_TYPE, query: CallbackQuery\n    ) -> None:\n        await query.answer()\n        with suppress(KeyError):\n            context.drop_callback_data(query)\n\n    def check_image(self, message: Message) -> Document | PhotoSize:\n        img_file: Document | PhotoSize | None = message.document\n        if (\n            img_file is not None\n            and isinstance(img_file, Document)\n            and img_file.mime_type is not None\n            and not img_file.mime_type.startswith(self.IMAGE_MIME_TYPE_PREFIX)\n        ):\n            raise TelegramFileMimeTypeError(_(\"Your file is not an image, please try again\"))\n\n        if img_file is None:\n            if message.photo:\n                img_file = message.photo[-1]\n            else:\n                raise TelegramImageNotFoundError(_(\"No image found in your message\"))\n\n        self.check_file_size(img_file)\n        return img_file\n\n    def check_pdf_document(self, message: Message) -> Document:\n        doc = cast(\"Document\", message.document)\n        doc_mime_type = doc.mime_type\n\n        if doc_mime_type is not None and not doc_mime_type.endswith(self.PDF_MIME_TYPE_SUFFIX):\n            raise TelegramFileMimeTypeError(_(\"Your file is not a PDF file, please try again\"))\n        self.check_file_size(doc)\n        return doc\n\n    @asynccontextmanager\n    async def download_pdf_file(self, file_id: str) -> AsyncGenerator[Path, None]:\n        with self.io_service.create_temp_pdf_file() as path:\n            file = await self.bot.get_file(file_id)\n            await file.download_to_drive(custom_path=path)\n            yield path\n\n    @asynccontextmanager\n    async def download_files(self, file_ids: list[str]) -> AsyncGenerator[list[Path], None]:\n        with self.io_service.create_temp_files(len(file_ids)) as out_paths:\n            for i, file_id in enumerate(file_ids):\n                file = await self.bot.get_file(file_id)\n                await file.download_to_drive(custom_path=out_paths[i])\n            yield out_paths\n\n    async def cancel_conversation(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        query: CallbackQuery | None = update.callback_query\n\n        if query is not None:\n            await self.answer_query_and_drop_data(context, query)\n            await query.edit_message_text(_(\"Action cancelled\"))\n        else:\n            msg = cast(\"Message\", update.effective_message)\n            await msg.reply_text(_(\"Action cancelled\"), reply_markup=ReplyKeyboardRemove())\n\n        return ConversationHandler.END\n\n    def get_back_button(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> InlineKeyboardButton:\n        _ = self.language_service.set_app_language(update, context)\n        return InlineKeyboardButton(_(self.BACK), callback_data=BackData())\n\n    def get_back_inline_markup(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> InlineKeyboardMarkup:\n        keyboard = [[self.get_back_button(update, context)]]\n        return InlineKeyboardMarkup(keyboard)\n\n    def get_support_markup(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE\n    ) -> InlineKeyboardMarkup:\n        _ = self.language_service.set_app_language(update, context)\n        keyboard = [\n            [\n                InlineKeyboardButton(_(\"Join Channel\"), f\"https://t.me/{CHANNEL_NAME}\"),\n                InlineKeyboardButton(_(\"Support PDF Bot\"), callback_data=SupportData()),\n            ]\n        ]\n\n        return InlineKeyboardMarkup(keyboard)\n\n    def reply_with_back_markup(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        text: str,\n        parse_mode: ParseMode | None = None,\n    ) -> Coroutine[Any, Any, Message]:\n        data = _ReplyData(text=text, markup_button_text=BACK, parse_mode=parse_mode)\n        return self._reply_with_markup(update, context, data)\n\n    def reply_with_cancel_markup(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        text: str,\n        parse_mode: ParseMode | None = None,\n    ) -> Coroutine[Any, Any, Message]:\n        data = _ReplyData(text=text, markup_button_text=CANCEL, parse_mode=parse_mode)\n        return self._reply_with_markup(update, context, data)\n\n    async def send_file(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        file_path: Path,\n        task: TaskType,\n    ) -> None:\n        _ = self.language_service.set_app_language(update, context)\n        chat_id = self._get_chat_id(update)\n\n        try:\n            self.check_file_upload_size(file_path)\n        except TelegramFileTooLargeError as e:\n            await self.bot.send_message(chat_id, _(str(e)))\n            return\n\n        reply_markup = self.get_support_markup(update, context)\n        if file_path.suffix == self.PNG_SUFFIX:\n            await self.bot.send_chat_action(chat_id, ChatAction.UPLOAD_PHOTO)\n            await self.bot.send_photo(\n                chat_id,\n                file_path,\n                caption=_(\"Here is your result file\"),\n                reply_markup=reply_markup,\n            )\n        else:\n            await self.bot.send_chat_action(chat_id, ChatAction.UPLOAD_DOCUMENT)\n            await self.bot.send_document(\n                chat_id,\n                file_path,\n                caption=_(\"Here is your result file\"),\n                reply_markup=reply_markup,\n            )\n\n        self.analytics_service.send_event(update, context, task, EventAction.complete)\n\n    async def send_file_names(\n        self, chat_id: int, text: str, file_data_list: list[FileData]\n    ) -> None:\n        msg_text = text\n        for i, file_data in enumerate(file_data_list):\n            file_name = file_data.name\n            if file_name is None:\n                file_name = \"File name unavailable\"\n            msg_text += f\"{i + 1}: {file_name}\\n\"\n\n        if len(msg_text) > MessageLimit.MAX_TEXT_LENGTH:\n            msg_text = (\n                msg_text[: MessageLimit.MAX_TEXT_LENGTH - len(self.MESSAGE_TRUNCATED)]\n                + self.MESSAGE_TRUNCATED\n            )\n\n        await self.bot.send_message(chat_id, msg_text)\n\n    async def send_message(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE, text: str\n    ) -> None:\n        _ = self.language_service.set_app_language(update, context)\n        chat_id = self._get_chat_id(update)\n        await self.bot.send_message(chat_id, _(text))\n\n    @staticmethod\n    def _get_chat_id(update: Update) -> int:\n        query = update.callback_query\n        msg: Message\n\n        if query is None:\n            msg = cast(\"Message\", update.effective_message)\n        else:\n            msg = cast(\"Message\", query.message)\n\n        return msg.chat_id\n\n    def _reply_with_markup(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE, reply_data: _ReplyData\n    ) -> Coroutine[Any, Any, Message]:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        markup = ReplyKeyboardMarkup(\n            [[_(reply_data.markup_button_text)]], one_time_keyboard=True, resize_keyboard=True\n        )\n\n        return msg.reply_text(\n            _(reply_data.text), reply_markup=markup, parse_mode=reply_data.parse_mode\n        )\n"
  },
  {
    "path": "pdf_bot/text/__init__.py",
    "content": "from .text_handler import TextHandler\nfrom .text_repository import TextRepository\nfrom .text_service import TextService\n\n__all__ = [\"TextHandler\", \"TextRepository\", \"TextService\"]\n"
  },
  {
    "path": "pdf_bot/text/text_handler.py",
    "content": "from telegram.ext import BaseHandler, CommandHandler, ConversationHandler, MessageHandler\n\nfrom pdf_bot.consts import TEXT_FILTER\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\nfrom pdf_bot.telegram_internal import TelegramService\n\nfrom .text_service import TextService\n\n\nclass TextHandler(AbstractTelegramHandler):\n    _TEXT_COMMAND = \"text\"\n\n    def __init__(self, text_service: TextService, telegram_service: TelegramService) -> None:\n        self.text_service = text_service\n        self.telegram_service = telegram_service\n\n    @property\n    def handlers(self) -> list[BaseHandler]:\n        return [\n            ConversationHandler(\n                entry_points=[CommandHandler(self._TEXT_COMMAND, self.text_service.ask_pdf_text)],\n                states={\n                    TextService.WAIT_TEXT: [\n                        MessageHandler(TEXT_FILTER, self.text_service.ask_pdf_font)\n                    ],\n                    TextService.WAIT_FONT: [\n                        MessageHandler(TEXT_FILTER, self.text_service.check_text)\n                    ],\n                },\n                fallbacks=[\n                    CommandHandler(\"cancel\", self.telegram_service.cancel_conversation),\n                ],\n                allow_reentry=True,\n            )\n        ]\n"
  },
  {
    "path": "pdf_bot/text/text_repository.py",
    "content": "from requests import Session\n\nfrom pdf_bot.pdf import FontData\n\n\nclass TextRepository:\n    def __init__(self, api_client: Session, google_fonts_token: str) -> None:\n        self.api_client = api_client\n        self.google_fonts_token = google_fonts_token\n\n    def get_font(self, font: str) -> FontData | None:\n        font_data: FontData | None = None\n        font = font.lower()\n\n        r = self.api_client.get(\n            \"https://www.googleapis.com/webfonts/v1/webfonts\",\n            params={\"key\": self.google_fonts_token},\n        )\n\n        for item in r.json()[\"items\"]:\n            if item[\"family\"].lower() == font:\n                if \"regular\" in item[\"files\"]:\n                    font_data = FontData(item[\"family\"], item[\"files\"][\"regular\"])\n                break\n\n        return font_data\n"
  },
  {
    "path": "pdf_bot/text/text_service.py",
    "content": "from gettext import gettext as _\nfrom typing import cast\n\nfrom telegram import Message, ReplyKeyboardMarkup, ReplyKeyboardRemove, Update\nfrom telegram.constants import ChatAction, ParseMode\nfrom telegram.ext import ContextTypes, ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.consts import CANCEL\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.pdf import FontData, PdfService\nfrom pdf_bot.telegram_internal import TelegramService, TelegramServiceError\nfrom pdf_bot.text.text_repository import TextRepository\n\n\nclass TextService:\n    WAIT_TEXT = 0\n    WAIT_FONT = 1\n\n    TEXT_KEY = \"text\"\n    SKIP = _(\"Skip\")\n\n    def __init__(\n        self,\n        text_repository: TextRepository,\n        pdf_service: PdfService,\n        telegram_service: TelegramService,\n        language_service: LanguageService,\n    ) -> None:\n        self.text_repository = text_repository\n        self.pdf_service = pdf_service\n        self.telegram_service = telegram_service\n        self.language_service = language_service\n\n    async def ask_pdf_text(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        await self.telegram_service.reply_with_cancel_markup(\n            update,\n            context,\n            _(\"Send me the text that you'll like to write into your PDF file\"),\n        )\n        return self.WAIT_TEXT\n\n    async def ask_pdf_font(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        text = msg.text\n\n        if text == _(CANCEL):\n            return await self.telegram_service.cancel_conversation(update, context)\n\n        self.telegram_service.update_user_data(context, self.TEXT_KEY, text)\n        reply_markup = ReplyKeyboardMarkup(\n            [[_(self.SKIP)]], resize_keyboard=True, one_time_keyboard=True\n        )\n        await msg.reply_text(\n            \"{desc_1}\\n\\n{desc_2}\".format(\n                desc_1=_(\n                    \"Send me the font that you'll like to use for the PDF file \"\n                    \"or press {skip} to use the default font\"\n                ).format(skip=_(self.SKIP)),\n                desc_2=_(\"See here for the list of supported fonts: {fonts}\").format(\n                    fonts='<a href=\"https://fonts.google.com/\">Google Fonts</a>'\n                ),\n            ),\n            parse_mode=ParseMode.HTML,\n            disable_web_page_preview=True,\n            reply_markup=reply_markup,\n        )\n\n        return self.WAIT_FONT\n\n    async def check_text(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        msg = cast(\"Message\", update.effective_message)\n        await msg.reply_chat_action(ChatAction.TYPING)\n\n        _ = self.language_service.set_app_language(update, context)\n        msg_text = cast(\"str\", msg.text)\n\n        if msg_text == _(CANCEL):\n            return await self.telegram_service.cancel_conversation(update, context)\n\n        if msg_text == _(self.SKIP):\n            return await self._text_to_pdf(update, context)\n\n        font_data = self.text_repository.get_font(msg_text)\n        if font_data is not None:\n            return await self._text_to_pdf(update, context, font_data)\n\n        await msg.reply_text(_(\"Unknown font, please try again\"))\n        return self.WAIT_FONT\n\n    async def _text_to_pdf(\n        self,\n        update: Update,\n        context: ContextTypes.DEFAULT_TYPE,\n        font_data: FontData | None = None,\n    ) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n\n        try:\n            text = self.telegram_service.get_user_data(context, self.TEXT_KEY)\n        except TelegramServiceError as e:\n            await msg.reply_text(_(str(e)))\n            return ConversationHandler.END\n\n        await msg.reply_text(_(\"Creating your PDF file\"), reply_markup=ReplyKeyboardRemove())\n        async with self.pdf_service.create_pdf_from_text(text, font_data) as out_path:\n            await self.telegram_service.send_file(update, context, out_path, TaskType.text_to_pdf)\n\n        return ConversationHandler.END\n"
  },
  {
    "path": "pdf_bot/watermark/__init__.py",
    "content": "from .watermark_handler import WatermarkHandler\nfrom .watermark_service import WatermarkService\n\n__all__ = [\"WatermarkHandler\", \"WatermarkService\"]\n"
  },
  {
    "path": "pdf_bot/watermark/watermark_handler.py",
    "content": "from telegram.ext import BaseHandler, CommandHandler, ConversationHandler, MessageHandler, filters\n\nfrom pdf_bot.consts import TEXT_FILTER\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\nfrom pdf_bot.telegram_internal import TelegramService\n\nfrom .watermark_service import WatermarkService\n\n\nclass WatermarkHandler(AbstractTelegramHandler):\n    _WATERMARK_COMMAND = \"watermark\"\n\n    def __init__(\n        self, watermark_service: WatermarkService, telegram_service: TelegramService\n    ) -> None:\n        self.watermark_service = watermark_service\n        self.telegram_service = telegram_service\n\n    @property\n    def handlers(self) -> list[BaseHandler]:\n        return [\n            ConversationHandler(\n                entry_points=[\n                    CommandHandler(self._WATERMARK_COMMAND, self.watermark_service.ask_source_pdf)\n                ],\n                states={\n                    WatermarkService.WAIT_SOURCE_PDF: [\n                        MessageHandler(\n                            filters.Document.PDF,\n                            self.watermark_service.check_source_pdf,\n                        )\n                    ],\n                    WatermarkService.WAIT_WATERMARK_PDF: [\n                        MessageHandler(\n                            filters.Document.PDF,\n                            self.watermark_service.add_watermark_to_pdf,\n                        )\n                    ],\n                },\n                fallbacks=[\n                    CommandHandler(\"cancel\", self.telegram_service.cancel_conversation),\n                    MessageHandler(TEXT_FILTER, self.watermark_service.check_text),\n                ],\n                allow_reentry=True,\n            )\n        ]\n"
  },
  {
    "path": "pdf_bot/watermark/watermark_service.py",
    "content": "from typing import cast\n\nfrom telegram import Message, ReplyKeyboardMarkup, ReplyKeyboardRemove, Update\nfrom telegram.ext import ContextTypes, ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.consts import BACK, CANCEL\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.pdf import PdfServiceError\nfrom pdf_bot.pdf.pdf_service import PdfService\nfrom pdf_bot.telegram_internal import (\n    TelegramGetUserDataError,\n    TelegramService,\n    TelegramServiceError,\n)\n\n\nclass WatermarkService:\n    WAIT_SOURCE_PDF = 0\n    WAIT_WATERMARK_PDF = 1\n    WATERMARK_KEY = \"watermark\"\n\n    def __init__(\n        self,\n        pdf_service: PdfService,\n        telegram_service: TelegramService,\n        language_service: LanguageService,\n    ) -> None:\n        self.pdf_service = pdf_service\n        self.telegram_service = telegram_service\n        self.language_service = language_service\n\n    async def ask_source_pdf(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        await self.telegram_service.reply_with_cancel_markup(\n            update,\n            context,\n            _(\"Send me the PDF file that you'll like to add a watermark\"),\n        )\n        return self.WAIT_SOURCE_PDF\n\n    async def check_source_pdf(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n\n        try:\n            doc = self.telegram_service.check_pdf_document(msg)\n        except TelegramServiceError as e:\n            await msg.reply_text(_(str(e)))\n            return self.WAIT_SOURCE_PDF\n\n        self.telegram_service.update_user_data(context, self.WATERMARK_KEY, doc.file_id)\n        reply_markup = ReplyKeyboardMarkup(\n            [[_(BACK), _(CANCEL)]], resize_keyboard=True, one_time_keyboard=True\n        )\n        await msg.reply_text(_(\"Send me the watermark PDF file\"), reply_markup=reply_markup)\n\n        return self.WAIT_WATERMARK_PDF\n\n    async def add_watermark_to_pdf(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n\n        try:\n            doc = self.telegram_service.check_pdf_document(msg)\n            src_file_id = self.telegram_service.get_user_data(context, self.WATERMARK_KEY)\n        except TelegramServiceError as e:\n            await msg.reply_text(_(str(e)))\n            if isinstance(e, TelegramGetUserDataError):\n                return ConversationHandler.END\n            return self.WAIT_WATERMARK_PDF\n\n        await msg.reply_text(\n            _(\"Adding the watermark onto your PDF file\"),\n            reply_markup=ReplyKeyboardRemove(),\n        )\n\n        try:\n            async with self.pdf_service.add_watermark_to_pdf(src_file_id, doc.file_id) as out_path:\n                await self.telegram_service.send_file(\n                    update, context, out_path, TaskType.watermark_pdf\n                )\n        except PdfServiceError as e:\n            await msg.reply_text(_(str(e)))\n\n        return ConversationHandler.END\n\n    async def check_text(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> int | None:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        text = msg.text\n\n        if text == _(BACK):\n            return await self.ask_source_pdf(update, context)\n        if text == _(CANCEL):\n            return await self.telegram_service.cancel_conversation(update, context)\n\n        return None\n"
  },
  {
    "path": "pdf_bot/webpage/__init__.py",
    "content": "from .webpage_handler import WebpageHandler\nfrom .webpage_service import WebpageService\n\n__all__ = [\"WebpageHandler\", \"WebpageService\"]\n"
  },
  {
    "path": "pdf_bot/webpage/webpage_handler.py",
    "content": "from telegram import MessageEntity\nfrom telegram.ext import BaseHandler, MessageHandler, filters\n\nfrom pdf_bot.telegram_handler import AbstractTelegramHandler\n\nfrom .webpage_service import WebpageService\n\n\nclass WebpageHandler(AbstractTelegramHandler):\n    def __init__(self, webpage_service: WebpageService) -> None:\n        self.webpage_service = webpage_service\n\n    @property\n    def handlers(self) -> list[BaseHandler]:\n        return [MessageHandler(filters.Entity(MessageEntity.URL), self.webpage_service.url_to_pdf)]\n"
  },
  {
    "path": "pdf_bot/webpage/webpage_service.py",
    "content": "import hashlib\nfrom contextlib import suppress\nfrom typing import cast\nfrom urllib.parse import urlparse\n\nfrom telegram import Message, Update\nfrom telegram.ext import ContextTypes\nfrom weasyprint import HTML\nfrom weasyprint.css.tokens import InvalidValues\nfrom weasyprint.urls import URLFetchingError\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.io_internal import IOService\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.telegram_internal import (\n    TelegramGetUserDataError,\n    TelegramService,\n    TelegramUpdateUserDataError,\n)\n\n\nclass WebpageService:\n    def __init__(\n        self,\n        io_service: IOService,\n        language_service: LanguageService,\n        telegram_service: TelegramService,\n    ) -> None:\n        self.io_service = io_service\n        self.language_service = language_service\n        self.telegram_service = telegram_service\n\n    async def url_to_pdf(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:\n        _ = self.language_service.set_app_language(update, context)\n        msg = cast(\"Message\", update.effective_message)\n        url = cast(\"str\", msg.text)\n        url_hash = hashlib.sha256(url.encode(\"utf-8\")).hexdigest()\n\n        if self.telegram_service.user_data_contains(context, url_hash):\n            await msg.reply_text(\n                _(\"You've sent me this webpage already and I'm still converting it\")\n            )\n            return\n\n        await msg.reply_text(_(\"Converting your webpage into a PDF file\"))\n        self._cache_url(context, url_hash)\n        await self._url_to_pdf(update, context, url)\n        self._clear_url_cache(context, url_hash)\n\n    def _cache_url(self, context: ContextTypes.DEFAULT_TYPE, url_hash: str) -> None:\n        with suppress(TelegramUpdateUserDataError):\n            self.telegram_service.update_user_data(context, url_hash, None)\n\n    def _clear_url_cache(self, context: ContextTypes.DEFAULT_TYPE, url_hash: str) -> None:\n        with suppress(TelegramGetUserDataError):\n            self.telegram_service.get_user_data(context, url_hash)\n\n    async def _url_to_pdf(\n        self, update: Update, context: ContextTypes.DEFAULT_TYPE, url: str\n    ) -> None:\n        _ = self.language_service.set_app_language(update, context)\n        o = urlparse(url)\n        err_text = None\n\n        with self.io_service.create_temp_pdf_file(o.hostname) as out_path:\n            try:\n                HTML(url=url).write_pdf(out_path)\n                await self.telegram_service.send_file(\n                    update, context, out_path, TaskType.url_to_pdf\n                )\n            except URLFetchingError:\n                err_text = _(\"Unable to reach your webpage\")\n            except (\n                AssertionError,\n                AttributeError,\n                IndexError,\n                InvalidValues,\n                KeyError,\n                OverflowError,\n                RuntimeError,\n                ValueError,\n                TypeError,\n            ):\n                err_text = _(\"Failed to convert your webpage\")\n\n        if err_text is not None:\n            msg = cast(\"Message\", update.effective_message)\n            await msg.reply_text(err_text)\n"
  },
  {
    "path": "pyproject.toml",
    "content": "[tool.poetry]\nname = \"pdf-bot\"\nversion = \"1.0.0\"\ndescription = \"Telegram bot that can do a lot of things related to PDF files.\"\nauthors = [\"zeshuaro <zeshuaro@gmail.com>\"]\n\n[tool.poetry.dependencies]\npython = \"==3.14.4\"\nBabel = \"2.18.0\"\ngoogle-cloud-datastore = \"2.24.0\"\nhumanize = \"4.15.0\"\nimg2pdf = \"0.6.3\"\nocrmypdf = \"17.4.2\"\npdf2image = \"==1.17.0\"\n\"pdfminer.six\" = \"20251230\"\npython-telegram-bot = { extras = [\n    \"callback-data\",\n    \"rate-limiter\",\n    \"webhooks\",\n], version = \"==22.7\" }\nrequests = \"2.33.1\"\nslack-sdk = \"3.41.0\"\nweasyprint = \"68.1\"\nnoteshrink = { git = \"https://github.com/zeshuaro/noteshrink\", rev = \"a74a17f7cf3d2eae5811bf970ce88467ba37f51c\" }\npdf-diff = { git = \"https://github.com/zeshuaro/pdf-diff\", rev = \"6fe2f136906f1ecc9777c31aa846cd6a287c74b6\" }\nlangdetect = \"1.0.9\"\nloguru = \"0.7.3\"\nsentry-sdk = \"2.58.0\"\ndependency-injector = \"4.49.0\"\npdfCropMargins = \"==2.2.1\"\npycryptodome = \"3.23.0\"\npydantic = { extras = [\"dotenv\"], version = \"==2.13.3\" }\npypdf = \"6.10.2\"\npydantic-settings = \"2.14.0\"\n\n[tool.poetry.group.dev.dependencies]\npytest = \"9.0.3\"\npytest-cov = \"7.1.0\"\npre-commit = \"==4.6.0\"\nmypy = \"1.19.1\"\ntypes-requests = \"2.33.0.20260408\"\npytest-asyncio = \"1.3.0\"\nruff = \"==0.15.12\"\n\n[build-system]\nrequires = [\"poetry-core==2.3.2\"]\nbuild-backend = \"poetry.core.masonry.api\"\n\n[tool.ruff]\nline-length = 100\ntarget-version = \"py311\"\n\n[tool.ruff.lint]\nselect = [\"ALL\"]\nignore = [\n    \"ANN401\", # DynamicallyTypedExpression\n    \"COM812\", # trailing-comma-missing\n    \"FBT\",    # flake8-boolean-trap\n    \"ISC001\", # flake8-implicit-str-concat (conflicts with formatter)\n    \"PD\",     # pandas-vet\n    \"S603\",   # subprocess-without-shell-equals-true\n\n    # D10* rules are all related to missing docstring\n    \"D100\",\n    \"D101\",\n    \"D102\",\n    \"D103\",\n    \"D104\",\n    \"D105\",\n    \"D106\",\n    \"D107\",\n]\n\n[tool.ruff.lint.per-file-ignores]\n\"pdf_bot/language/language_service.py\" = [\n    \"RUF001\", # AmbiguousUnicodeCharacterString\n]\n\"tests/pdf_processor/test_abstract_pdf_select_and_text_processor.py\" = [\n    \"SLF001\", # private-member-access\n]\n\"tests/pdf_processor/test_abstract_pdf_text_input_processor.py\" = [\n    \"SLF001\", # private-member-access\n]\n\"tests/**/*.py\" = [\n    \"S101\",    # AssertUsed\n    \"S105\",    # HardcodedPasswordString\n    \"PLR2004\", # magic-value-comparison\n]\n\n[tool.ruff.lint.pydocstyle]\nconvention = \"google\"\n\n[tool.mypy]\nwarn_unused_configs = true\nwarn_redundant_casts = true\nshow_error_codes = true\n\ndisallow_untyped_defs = true\ndisallow_incomplete_defs = true\ncheck_untyped_defs = true\ndisallow_untyped_decorators = true\n\nwarn_unused_ignores = true\nwarn_no_return = true\nwarn_return_any = true\nwarn_unreachable = true\n\nplugins = ['pydantic.mypy']\n\n[[tool.mypy.overrides]]\nmodule = ['pdf_bot.log.*']\nignore_errors = true\n\n[[tool.mypy.overrides]]\nmodule = [\n    'weasyprint.*',\n    'langdetect.*',\n    'img2pdf.*',\n    'pdf2image.*',\n    'pdf_diff.*',\n    'noteshrink.*',\n    'google.*',\n    'pdfCropMargins.*',\n]\nignore_missing_imports = true\n\n[tool.coverage.run]\nrelative_files = true\nbranch = true\nsource = [\"pdf_bot\"]\nomit = ['pdf_bot/__main__.py', 'pdf_bot/log/*', \"tests/*\"]\n\n[tool.coverage.report]\nexclude_lines = [\n    \"pragma: no cover\",\n    \"def __repr__\",\n    \"if self.debug:\",\n    \"if settings.DEBUG\",\n    \"raise AssertionError\",\n    \"raise NotImplementedError\",\n    \"if 0:\",\n    \"if __name__ == .__main__.:\",\n    \"@abstractmethod\",\n]\n"
  },
  {
    "path": "renovate.json",
    "content": "{\n  \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\",\n  \"extends\": [\n    \"github>zeshuaro/renovate-configs\",\n    \"github>zeshuaro/renovate-configs:app\",\n    \"github>zeshuaro/renovate-configs:python\"\n  ]\n}\n"
  },
  {
    "path": "tests/__init__.py",
    "content": ""
  },
  {
    "path": "tests/account/__init__.py",
    "content": ""
  },
  {
    "path": "tests/account/test_account_repository.py",
    "content": "from unittest.mock import MagicMock, patch\n\nfrom google.cloud.datastore import Client, Entity, Key\n\nfrom pdf_bot.account import AccountRepository\nfrom pdf_bot.consts import LANGUAGE\n\n\nclass TestAccountRepository:\n    USER_ID = 0\n    LANGUAGE_CODE = \"lang_code\"\n\n    def setup_method(self) -> None:\n        self.user_entity = MagicMock(spec=Entity)\n\n        self.datastore_client = MagicMock(spec=Client)\n        self.sut = AccountRepository(self.datastore_client)\n\n    def test_get_user(self) -> None:\n        self.datastore_client.get.return_value = self.user_entity\n        actual = self.sut.get_user(self.USER_ID)\n        assert actual == self.user_entity\n\n    def test_get_user_null(self) -> None:\n        self.datastore_client.get.return_value = None\n        actual = self.sut.get_user(self.USER_ID)\n        assert actual is None\n\n    def test_upsert_user(self) -> None:\n        user_dict: dict = {}\n        self.user_entity.__contains__.side_effect = user_dict.__contains__\n        self.datastore_client.get.return_value = self.user_entity\n\n        self.sut.upsert_user(self.USER_ID, self.LANGUAGE_CODE)\n\n        self.user_entity.__setitem__.assert_called_once_with(LANGUAGE, self.LANGUAGE_CODE)\n        self.datastore_client.put.assert_called_with(self.user_entity)\n\n    def test_upsert_user_language_exists(self) -> None:\n        user_dict: dict = {LANGUAGE: self.LANGUAGE_CODE}\n        self.user_entity.__contains__.side_effect = user_dict.__contains__\n        self.datastore_client.get.return_value = self.user_entity\n\n        self.sut.upsert_user(self.USER_ID, self.LANGUAGE_CODE)\n\n        self.user_entity.__setitem__.assert_not_called()\n        self.datastore_client.put.assert_called_with(self.user_entity)\n\n    def test_upsert_user_new_user(self) -> None:\n        key = MagicMock(spec=Key)\n        self.datastore_client.key.return_value = key\n        self.datastore_client.get.return_value = None\n\n        with patch(\"pdf_bot.account.account_repository.Entity\") as entity_cls:\n            self.sut.upsert_user(self.USER_ID, self.LANGUAGE_CODE)\n\n            entity_cls.assert_called_once_with(key)\n            self.datastore_client.put.assert_called_once()\n"
  },
  {
    "path": "tests/account/test_account_service.py",
    "content": "from unittest.mock import MagicMock\n\nfrom telegram import User\n\nfrom pdf_bot.account import AccountRepository, AccountService\nfrom tests.language import LanguageServiceTestMixin\n\n\nclass TestAccountService(LanguageServiceTestMixin):\n    LANGUAGE_CODE = \"en_GB\"\n    USER_ID = 0\n\n    def setup_method(self) -> None:\n        self.user = MagicMock(spec=User)\n        self.user.id = self.USER_ID\n\n        self.account_repository = MagicMock(spec=AccountRepository)\n        self.language_service = self.mock_language_service()\n        self.language_service.get_language_code_from_short_code.return_value = self.LANGUAGE_CODE\n\n        self.service = AccountService(self.account_repository, self.language_service)\n\n    def test_create_user(self) -> None:\n        self.user.language_code = None\n        self.service.create_user(self.user)\n        self.account_repository.upsert_user.assert_called_with(self.USER_ID, self.LANGUAGE_CODE)\n\n    def test_create_user_with_language_code(self) -> None:\n        user_code = \"user_code\"\n        self.user.language_code = user_code\n        self.language_service.get_language_code_from_short_code.return_value = user_code\n\n        self.service.create_user(self.user)\n\n        self.account_repository.upsert_user.assert_called_with(self.USER_ID, user_code)\n\n    def test_create_user_with_invalid_language_code(self) -> None:\n        self.user.language_code = \"clearly_invalid\"\n        self.language_service.get_language_code_from_short_code.return_value = None\n\n        self.service.create_user(self.user)\n\n        self.account_repository.upsert_user.assert_called_with(self.USER_ID, self.LANGUAGE_CODE)\n"
  },
  {
    "path": "tests/analytics/__init__.py",
    "content": ""
  },
  {
    "path": "tests/analytics/test_analytics_repository.py",
    "content": "from typing import ClassVar\nfrom unittest.mock import MagicMock\n\nfrom requests import Session\n\nfrom pdf_bot.analytics import AnalyticsRepository\nfrom pdf_bot.settings import Settings\n\n\nclass TestAnalyticsRepository:\n    EVENT: ClassVar[dict[str, str]] = {\"analytics\": \"event\"}\n\n    def setup_method(self) -> None:\n        self.session = MagicMock(spec=Session)\n        self.settings = Settings()\n\n        self.sut = AnalyticsRepository(self.session, self.settings)\n\n    def test_send_event(self) -> None:\n        self.sut.send_event(self.EVENT)\n        self.session.post.assert_called_once_with(\n            \"https://www.google-analytics.com/mp/collect\",\n            params={\n                \"api_secret\": self.settings.ga_api_secret,\n                \"measurement_id\": self.settings.ga_measurement_id,\n            },\n            json=self.EVENT,\n            timeout=10,\n        )\n"
  },
  {
    "path": "tests/analytics/test_analytics_service.py",
    "content": "from unittest.mock import MagicMock, patch\nfrom uuid import UUID\n\nfrom requests import HTTPError\n\nfrom pdf_bot.analytics import AnalyticsRepository, AnalyticsService, EventAction, TaskType\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramTestMixin\n\n\nclass TestAnalyticsService(LanguageServiceTestMixin, TelegramTestMixin):\n    TASK_TYPE = TaskType.beautify_image\n    EVENT_ACTION = EventAction.complete\n    LANGUAGE = \"language\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.analytics_repository = MagicMock(spec=AnalyticsRepository)\n        self.language_service = self.mock_language_service()\n        self.language_service.get_user_language.return_value = self.LANGUAGE\n\n        self.sut = AnalyticsService(\n            self.analytics_repository,\n            self.language_service,\n        )\n\n    def test_send_event(self) -> None:\n        self._test_and_assert_send_event()\n\n    def test_send_event_error(self) -> None:\n        self.analytics_repository.send_event.side_effect = HTTPError(\n            request=MagicMock(), response=MagicMock()\n        )\n\n        with patch(\"pdf_bot.analytics.analytics_service.logger\") as logger:\n            self._test_and_assert_send_event()\n            logger.exception.assert_called_once()\n\n    def _test_and_assert_send_event(self) -> None:\n        self.sut.send_event(\n            self.telegram_update,\n            self.telegram_context,\n            self.TASK_TYPE,\n            self.EVENT_ACTION,\n        )\n\n        self.language_service.get_user_language.assert_called_once_with(\n            self.telegram_update, self.telegram_context\n        )\n\n        event = {\n            \"client_id\": str(UUID(int=self.TELEGRAM_USER_ID)),\n            \"user_properties\": {\"bot_language\": {\"value\": self.LANGUAGE}},\n            \"events\": [\n                {\n                    \"name\": self.TASK_TYPE.value,\n                    \"params\": {\"action\": self.EVENT_ACTION.value},\n                }\n            ],\n        }\n        self.analytics_repository.send_event.assert_called_once_with(event)\n"
  },
  {
    "path": "tests/cli/__init__.py",
    "content": ""
  },
  {
    "path": "tests/cli/test_cli_service.py",
    "content": "import shlex\nfrom subprocess import Popen\nfrom unittest.mock import MagicMock, patch\n\nimport pytest\n\nfrom pdf_bot.cli import CLIService, CLIServiceError\nfrom tests.path_test_mixin import PathTestMixin\n\n\nclass TestCLIService(PathTestMixin):\n    PERCENT = 0.1\n    MARGIN_SIZE = 10\n\n    def setup_method(self) -> None:\n        self.input_path = self.mock_file_path()\n        self.output_path = self.mock_file_path()\n\n        self.process = MagicMock(spec=Popen)\n        self.process.communicate.return_value = (\n            b\"0\",\n            b\"1\",\n        )\n\n        self.popen_patcher = patch(\"pdf_bot.cli.cli_service.Popen\", return_value=self.process)\n        self.popen = self.popen_patcher.start()\n\n        self.sut = CLIService()\n\n    def teardown_method(self) -> None:\n        self.popen_patcher.stop()\n\n    @pytest.mark.asyncio\n    async def test_compress_pdf(self) -> None:\n        self.process.returncode = 0\n        self.sut.compress_pdf(self.input_path, self.output_path)\n        self._assert_compress_command()\n\n    @pytest.mark.asyncio\n    async def test_compress_pdf_error(self) -> None:\n        self.process.returncode = 1\n\n        with pytest.raises(CLIServiceError):\n            self.sut.compress_pdf(self.input_path, self.output_path)\n\n        self._assert_compress_command()\n\n    @pytest.mark.asyncio\n    async def test_extract_pdf_images(self) -> None:\n        self.process.returncode = 0\n        self.sut.extract_pdf_images(self.input_path, self.output_path)\n        self._assert_get_pdf_images_command()\n\n    @pytest.mark.asyncio\n    async def test_extract_pdf_images_error(self) -> None:\n        self.process.returncode = 1\n\n        with pytest.raises(CLIServiceError):\n            self.sut.extract_pdf_images(self.input_path, self.output_path)\n\n        self._assert_get_pdf_images_command()\n\n    def _assert_compress_command(self) -> None:\n        args = self.popen.call_args.args[0]\n        assert args == shlex.split(\n            \"gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default \"\n            f'-dNOPAUSE -dQUIET -dBATCH -sOutputFile=\"{self.output_path}\" '\n            f'\"{self.input_path}\"'\n        )\n\n    def _assert_crop_pdf_percentage_command(self) -> None:\n        args = self.popen.call_args.args[0]\n        assert args == shlex.split(\n            f'pdfcropmargins -o \"{self.output_path}\" \"{self.input_path}\" -p {self.PERCENT}'\n        )\n\n    def _assert_crop_pdf_margin_size_command(self) -> None:\n        args = self.popen.call_args.args[0]\n        assert args == shlex.split(\n            f'pdfcropmargins -o \"{self.output_path}\" \"{self.input_path}\" -a {self.MARGIN_SIZE}'\n        )\n\n    def _assert_get_pdf_images_command(self) -> None:\n        args = self.popen.call_args.args[0]\n        assert args == shlex.split(\n            f'pdfimages -png \"{self.input_path}\" \"{self.output_path}/images\"'\n        )\n"
  },
  {
    "path": "tests/command/__init__.py",
    "content": ""
  },
  {
    "path": "tests/command/test_command_handler.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CommandHandler, filters\n\nfrom pdf_bot.command import CommandService, MyCommandHandler\nfrom tests.telegram_internal import TelegramTestMixin\n\n\nclass TestCommandHandler(TelegramTestMixin):\n    START_COMMAND = \"start\"\n    HELP_COMMAND = \"help\"\n    SEND_COMMAND = \"send\"\n    ADMIN_TELEGRAM_ID = 123\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.command_service = MagicMock(spec=CommandService)\n        self.sut = MyCommandHandler(self.command_service, self.ADMIN_TELEGRAM_ID)\n\n    @pytest.mark.asyncio\n    async def test_handlers(self) -> None:\n        actual = self.sut.handlers\n        assert len(actual) == 3\n        handler_0, handler_1, handler_2 = actual\n\n        assert isinstance(handler_0, CommandHandler)\n        assert handler_0.commands == {self.START_COMMAND}\n\n        assert isinstance(handler_1, CommandHandler)\n        assert handler_1.commands == {self.HELP_COMMAND}\n\n        assert isinstance(handler_2, CommandHandler)\n        assert handler_2.commands == {self.SEND_COMMAND}\n        assert handler_2.filters.name == filters.User(self.ADMIN_TELEGRAM_ID).name\n\n        for handler in actual:\n            await handler.callback(self.telegram_update, self.telegram_context)\n\n        self.command_service.send_start_message.assert_called_once()\n        self.command_service.send_help_message.assert_called_once()\n        self.command_service.send_message_to_user.assert_called_once()\n"
  },
  {
    "path": "tests/command/test_command_service.py",
    "content": "from unittest.mock import ANY, MagicMock\n\nimport pytest\nfrom telegram.constants import ParseMode\nfrom telegram.error import Forbidden\n\nfrom pdf_bot.account import AccountService\nfrom pdf_bot.command import CommandService\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramTestMixin\n\n\nclass TestCommandService(LanguageServiceTestMixin, TelegramTestMixin):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.account_service = MagicMock(spec=AccountService)\n        self.language_service = self.mock_language_service()\n\n        self.sut = CommandService(self.account_service, self.language_service)\n\n    @pytest.mark.asyncio\n    async def test_send_start_message(self) -> None:\n        await self.sut.send_start_message(self.telegram_update, self.telegram_context)\n\n        self.account_service.create_user.assert_called_once_with(self.telegram_user)\n        self.telegram_update.effective_message.reply_text.assert_called_once_with(\n            ANY, parse_mode=ParseMode.HTML\n        )\n\n    @pytest.mark.asyncio\n    async def test_send_help_message(self) -> None:\n        await self.sut.send_help_message(self.telegram_update, self.telegram_context)\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_send_message_to_user(self) -> None:\n        self.telegram_context.args = [self.TELEGRAM_USER_ID, self.TELEGRAM_TEXT]\n        await self.sut.send_message_to_user(self.telegram_update, self.telegram_context)\n        self._assert_send_message_to_user(\"Message sent\")\n\n    @pytest.mark.asyncio\n    async def test_send_message_to_user_unauthorized(self) -> None:\n        self.telegram_context.args = [self.TELEGRAM_USER_ID, self.TELEGRAM_TEXT]\n        self.telegram_bot.send_message.side_effect = Forbidden(\"Error\")\n\n        await self.sut.send_message_to_user(self.telegram_update, self.telegram_context)\n\n        self._assert_send_message_to_user(\"Bot is blocked by the user\")\n\n    @pytest.mark.asyncio\n    async def test_send_message_to_user_invalid_args(self) -> None:\n        args = None\n        self.telegram_context.args = args\n\n        await self.sut.send_message_to_user(self.telegram_update, self.telegram_context)\n\n        self.telegram_context.bot.send_message.assert_not_called()\n        self.telegram_update.effective_message.reply_text.assert_called_once_with(\n            f\"Invalid arguments: {args}\"\n        )\n\n    def _assert_send_message_to_user(self, message: str) -> None:\n        self.telegram_context.bot.send_message.assert_called_once_with(\n            self.TELEGRAM_USER_ID, self.TELEGRAM_TEXT\n        )\n        self.telegram_update.effective_message.reply_text.assert_called_once_with(message)\n"
  },
  {
    "path": "tests/compare/__init__.py",
    "content": ""
  },
  {
    "path": "tests/compare/test_compare_handler.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CommandHandler, ConversationHandler, MessageHandler, filters\n\nfrom pdf_bot.compare import CompareHandler, CompareService\nfrom pdf_bot.consts import TEXT_FILTER\nfrom tests.telegram_internal import TelegramServiceTestMixin\n\n\nclass TestCompareHandlers(TelegramServiceTestMixin):\n    COMPARE_COMMAND = \"compare\"\n    CANCEL_COMMAND = \"cancel\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.compare_service = MagicMock(spec=CompareService)\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = CompareHandler(self.compare_service, self.telegram_service)\n\n    @pytest.mark.asyncio\n    async def test_handlers(self) -> None:\n        actual = self.sut.handlers\n        assert len(actual) == 1\n\n        handler = actual[0]\n        assert isinstance(handler, ConversationHandler)\n\n        entry_points = handler.entry_points\n        assert len(entry_points) == 1\n        assert isinstance(entry_points[0], CommandHandler)\n        assert entry_points[0].commands == {self.COMPARE_COMMAND}\n\n        states = handler.states\n        assert CompareService.WAIT_FIRST_PDF in states\n        wait_first_pdf = states[CompareService.WAIT_FIRST_PDF]\n        assert len(wait_first_pdf) == 1\n        assert isinstance(wait_first_pdf[0], MessageHandler)\n        assert wait_first_pdf[0].filters == filters.Document.PDF\n\n        assert CompareService.WAIT_SECOND_PDF in states\n        wait_second_pdf = states[CompareService.WAIT_SECOND_PDF]\n        assert len(wait_second_pdf) == 1\n        assert isinstance(wait_second_pdf[0], MessageHandler)\n        assert wait_second_pdf[0].filters == filters.Document.PDF\n\n        fallbacks = handler.fallbacks\n        assert len(fallbacks) == 2\n\n        assert isinstance(fallbacks[0], CommandHandler)\n        assert fallbacks[0].commands == {self.CANCEL_COMMAND}\n\n        assert isinstance(fallbacks[1], MessageHandler)\n        assert fallbacks[1].filters.name == TEXT_FILTER.name\n\n        for handler in entry_points + wait_first_pdf + wait_second_pdf + fallbacks:\n            await handler.callback(self.telegram_update, self.telegram_context)\n\n        self.compare_service.ask_first_pdf.assert_called_once()\n        self.compare_service.check_first_pdf.assert_called_once()\n        self.compare_service.compare_pdfs.assert_called_once()\n        self.compare_service.check_text.assert_called_once()\n        self.telegram_service.cancel_conversation.assert_called_once()\n"
  },
  {
    "path": "tests/compare/test_compare_service.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom pdf_diff import NoDifferenceError\nfrom telegram.ext import ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.compare import CompareService\nfrom pdf_bot.consts import BACK, CANCEL\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.telegram_internal import TelegramGetUserDataError, TelegramServiceError\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestCompareService(LanguageServiceTestMixin, TelegramServiceTestMixin, TelegramTestMixin):\n    COMPARE_ID = \"compare_id\"\n    WAIT_FIRST_PDF = 0\n    WAIT_SECOND_PDF = 1\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n        self.telegram_service.get_user_data.side_effect = None\n\n        self.sut = CompareService(self.pdf_service, self.telegram_service, self.language_service)\n\n    @pytest.mark.asyncio\n    async def test_ask_first_pdf(self) -> None:\n        actual = await self.sut.ask_first_pdf(self.telegram_update, self.telegram_context)\n        assert actual == self.WAIT_FIRST_PDF\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_first_pdf(self) -> None:\n        actual = await self.sut.check_first_pdf(self.telegram_update, self.telegram_context)\n        assert actual == self.WAIT_SECOND_PDF\n        self.telegram_service.update_user_data.assert_called_once_with(\n            self.telegram_context, self.COMPARE_ID, self.TELEGRAM_DOCUMENT_ID\n        )\n\n    @pytest.mark.asyncio\n    async def test_check_first_pdf_invalid_pdf(self) -> None:\n        self.telegram_service.check_pdf_document.side_effect = TelegramServiceError()\n\n        actual = await self.sut.check_first_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_FIRST_PDF\n        self.telegram_context.user_data.__setitem__.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_compare_pdfs(self) -> None:\n        self.telegram_service.get_user_data.return_value = self.TELEGRAM_DOCUMENT_ID\n        self.pdf_service.compare_pdfs.return_value.__aenter__.return_value = self.file_path\n\n        actual = await self.sut.compare_pdfs(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.pdf_service.compare_pdfs.assert_called_with(\n            self.TELEGRAM_DOCUMENT_ID, self.TELEGRAM_DOCUMENT_ID\n        )\n        self.telegram_service.send_file.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            self.file_path,\n            TaskType.compare_pdf,\n        )\n\n    @pytest.mark.asyncio\n    async def test_compare_pdfs_no_differences(self) -> None:\n        self.telegram_service.get_user_data.return_value = self.TELEGRAM_DOCUMENT_ID\n        self.pdf_service.compare_pdfs.return_value.__aenter__.side_effect = NoDifferenceError()\n\n        actual = await self.sut.compare_pdfs(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.pdf_service.compare_pdfs.assert_called_with(\n            self.TELEGRAM_DOCUMENT_ID, self.TELEGRAM_DOCUMENT_ID\n        )\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_compare_pdfs_invalid_user_data(self) -> None:\n        self.telegram_service.get_user_data.side_effect = TelegramGetUserDataError()\n\n        actual = await self.sut.compare_pdfs(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.pdf_service.compare_pdfs.assert_not_called()\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_compare_pdfs_invalid_pdf(self) -> None:\n        self.telegram_service.check_pdf_document.side_effect = TelegramServiceError()\n\n        actual = await self.sut.compare_pdfs(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_SECOND_PDF\n        self.pdf_service.compare_pdfs.assert_not_called()\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_check_text_back(self) -> None:\n        self.telegram_message.text = BACK\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n        assert actual == self.WAIT_FIRST_PDF\n\n    @pytest.mark.asyncio\n    async def test_check_text_cancel(self) -> None:\n        self.telegram_service.cancel_conversation.return_value = ConversationHandler.END\n        self.telegram_message.text = CANCEL\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n\n    @pytest.mark.asyncio\n    async def test_check_text_unknown(self) -> None:\n        self.telegram_message.text = \"clearly_unknown\"\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n        assert actual is None\n"
  },
  {
    "path": "tests/conftest.py",
    "content": "import pytest\n\nfrom pdf_bot.file_processor import AbstractFileProcessor\nfrom pdf_bot.image_processor import AbstractImageProcessor\nfrom pdf_bot.pdf_processor import AbstractPdfProcessor\n\n\n@pytest.fixture(autouse=True)\ndef _after_test() -> None:\n    AbstractFileProcessor._FILE_PROCESSORS = {}  # noqa: SLF001\n    AbstractImageProcessor._IMAGE_PROCESSORS = {}  # noqa: SLF001\n    AbstractPdfProcessor._PDF_PROCESSORS = {}  # noqa: SLF001\n"
  },
  {
    "path": "tests/datastore/__init__.py",
    "content": ""
  },
  {
    "path": "tests/datastore/test_datastore_client.py",
    "content": "from unittest.mock import MagicMock, patch\n\nfrom google.oauth2.service_account import Credentials\n\nfrom pdf_bot.datastore import MyDatastoreClient\n\n\nclass TestMyDatastoreClient:\n    def test_init(self) -> None:\n        service_account = {\"service\": \"account\"}\n        creds = MagicMock(spec=Credentials)\n\n        with (\n            patch(\"pdf_bot.datastore.datastore_client.Credentials\") as creds_cls,\n            patch(\"pdf_bot.datastore.datastore_client.Client.__init__\") as client_init,\n        ):\n            creds_cls.from_service_account_info.return_value = creds\n\n            MyDatastoreClient(service_account)\n\n            creds_cls.from_service_account_info.assert_called_once_with(service_account)\n            client_init.assert_called_once_with(credentials=creds)\n"
  },
  {
    "path": "tests/error/__init__.py",
    "content": ""
  },
  {
    "path": "tests/error/test_error_callback_query_handler.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.error import ErrorCallbackQueryHandler, ErrorService\nfrom tests.telegram_internal import TelegramServiceTestMixin\n\n\nclass TestErrorCallbackQueryHandler(TelegramServiceTestMixin):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.error_service = MagicMock(spec=ErrorService)\n\n        self.sut = ErrorCallbackQueryHandler(self.error_service)\n\n    @pytest.mark.asyncio\n    async def test_handlers(self) -> None:\n        actual = self.sut.handlers\n        assert len(actual) == 1\n\n        handler = actual[0]\n        assert isinstance(handler, CallbackQueryHandler)\n\n        await handler.callback(self.telegram_update, self.telegram_context)\n        self.error_service.process_unknown_callback_query.assert_called_once()\n"
  },
  {
    "path": "tests/error/test_error_handler.py",
    "content": "from unittest.mock import patch\n\nimport pytest\nfrom telegram.error import BadRequest, Forbidden\n\nfrom pdf_bot.error import ErrorHandler\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramTestMixin\n\n\nclass TestErrorHandler(LanguageServiceTestMixin, TelegramTestMixin):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.language_service = self.mock_language_service()\n        self.sut = ErrorHandler(self.language_service)\n\n        self.sentry_sdk_patcher = patch(\"pdf_bot.error.error_handler.sentry_sdk\")\n        self.sentry_sdk = self.sentry_sdk_patcher.start()\n\n    def teardown_method(self) -> None:\n        self.sentry_sdk_patcher.stop()\n\n    @pytest.mark.asyncio\n    async def test_callback_known_error(self) -> None:\n        self.telegram_context.error = Forbidden(\"Error\")\n        await self.sut.callback(self.telegram_update, self.telegram_context)\n\n    @pytest.mark.asyncio\n    async def test_callback_unknown_error(self) -> None:\n        error = RuntimeError()\n        self.telegram_context.error = error\n\n        await self.sut.callback(self.telegram_update, self.telegram_context)\n\n        self.telegram_context.bot.send_message.assert_called_once()\n        self.sentry_sdk.capture_exception.assert_called_once_with(error)\n\n    @pytest.mark.asyncio\n    async def test_callback_unknown_error_and_send_message_error(self) -> None:\n        error = RuntimeError()\n        self.telegram_context.error = error\n        self.telegram_context.bot.send_message.side_effect = Exception\n\n        await self.sut.callback(self.telegram_update, self.telegram_context)\n\n        self.telegram_context.bot.send_message.assert_called_once()\n        self.sentry_sdk.capture_exception.assert_called_once_with(error)\n\n    @pytest.mark.asyncio\n    async def test_callback_unknown_error_and_without_chat_id(self) -> None:\n        error = RuntimeError()\n        self.telegram_context.error = error\n        self.telegram_update.effective_message = None\n        self.telegram_update.effective_chat = None\n\n        await self.sut.callback(self.telegram_update, self.telegram_context)\n\n        self.telegram_context.bot.send_message.assert_not_called()\n        self.sentry_sdk.capture_exception.assert_called_once_with(error)\n\n    @pytest.mark.asyncio\n    async def test_callback_unknown_error_and_effective_chat(self) -> None:\n        error = RuntimeError()\n        self.telegram_context.error = error\n        self.telegram_update.effective_message = None\n        self.telegram_update.effective_chat = self.telegram_chat\n\n        await self.sut.callback(self.telegram_update, self.telegram_context)\n\n        self.telegram_context.bot.send_message.assert_called_once()\n        self.sentry_sdk.capture_exception.assert_called_once_with(error)\n\n    @pytest.mark.asyncio\n    async def test_callback_unknown_error_and_not_update(self) -> None:\n        error = RuntimeError()\n        self.telegram_context.error = error\n\n        await self.sut.callback(None, self.telegram_context)\n\n        self.telegram_context.bot.send_message.assert_not_called()\n        self.sentry_sdk.capture_exception.assert_called_once_with(error)\n\n    @pytest.mark.asyncio\n    async def test_callback_without_error(self) -> None:\n        self.telegram_context.error = None\n\n        await self.sut.callback(self.telegram_update, self.telegram_context)\n\n        self.telegram_context.bot.send_message.assert_not_called()\n        self.sentry_sdk.capture_exception.assert_not_called()\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\n        \"message\",\n        [\n            \"Message is not modified\",\n            \"Need administrator rights in the channel chat\",\n            \"Message to delete not found\",\n            \"Message to edit not found\",\n        ],\n    )\n    async def test_callback_bad_request_swallow_error(self, message: str) -> None:\n        self.telegram_context.error = BadRequest(message)\n\n        await self.sut.callback(self.telegram_update, self.telegram_context)\n\n        self.telegram_context.bot.send_message.assert_not_called()\n        self.sentry_sdk.capture_exception.assert_not_called()\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\n        \"message\",\n        [\n            \"Query is too old and response timeout expired\",\n            \"File must be non-empty\",\n            \"photo_invalid_dimensions\",\n        ],\n    )\n    async def test_callback_bad_request_swallow_and_reply_error(self, message: str) -> None:\n        self.telegram_context.error = BadRequest(message)\n\n        await self.sut.callback(self.telegram_update, self.telegram_context)\n\n        self.telegram_context.bot.send_message.assert_called_once()\n        self.sentry_sdk.capture_exception.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_callback_unknown_bad_request(self) -> None:\n        error = BadRequest(\"Unknown bad request\")\n        self.telegram_context.error = error\n\n        await self.sut.callback(self.telegram_update, self.telegram_context)\n\n        self.telegram_context.bot.send_message.assert_called_once()\n        self.sentry_sdk.capture_exception.assert_called_once_with(error)\n"
  },
  {
    "path": "tests/error/test_error_service.py",
    "content": "import pytest\n\nfrom pdf_bot.error import ErrorService\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramTestMixin\n\n\nclass TestErrorService(LanguageServiceTestMixin, TelegramTestMixin):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.language_service = self.mock_language_service()\n\n        self.sut = ErrorService(self.language_service)\n\n    @pytest.mark.asyncio\n    async def test_process_unknown_callback_query(self) -> None:\n        await self.sut.process_unknown_callback_query(self.telegram_update, self.telegram_context)\n\n        self.telegram_callback_query.answer.assert_called_once()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n"
  },
  {
    "path": "tests/feedback/__init__.py",
    "content": ""
  },
  {
    "path": "tests/feedback/test_feedback_handler.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CommandHandler, ConversationHandler, MessageHandler\n\nfrom pdf_bot.consts import TEXT_FILTER\nfrom pdf_bot.feedback import FeedbackHandler, FeedbackService\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestFeedbackHandler(TelegramServiceTestMixin, TelegramTestMixin):\n    FEEDBACK_COMMAND = \"feedback\"\n    CANCEL_COMMAND = \"cancel\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.feedback_service = MagicMock(spec=FeedbackService)\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = FeedbackHandler(\n            self.feedback_service,\n            self.telegram_service,\n        )\n\n    @pytest.mark.asyncio\n    async def test_handlers(self) -> None:\n        actual = self.sut.handlers\n        assert len(actual) == 1\n\n        handler = actual[0]\n        assert isinstance(handler, ConversationHandler)\n\n        entry_points = handler.entry_points\n        assert len(entry_points) == 1\n        assert isinstance(entry_points[0], CommandHandler)\n        assert entry_points[0].commands == {self.FEEDBACK_COMMAND}\n\n        states = handler.states\n        assert FeedbackService.WAIT_FEEDBACK in states\n        wait_feedback = states[FeedbackService.WAIT_FEEDBACK]\n        assert len(wait_feedback) == 1\n        assert isinstance(wait_feedback[0], MessageHandler)\n        assert wait_feedback[0].filters.name == TEXT_FILTER.name\n\n        fallbacks = handler.fallbacks\n        assert len(fallbacks) == 1\n\n        assert isinstance(fallbacks[0], CommandHandler)\n        assert fallbacks[0].commands == {self.CANCEL_COMMAND}\n\n        for handler in entry_points + wait_feedback + fallbacks:\n            await handler.callback(self.telegram_update, self.telegram_context)\n\n        self.feedback_service.ask_feedback.assert_called_once()\n        self.feedback_service.check_text.assert_called_once()\n        self.telegram_service.cancel_conversation.assert_called_once()\n"
  },
  {
    "path": "tests/feedback/test_feedback_repository.py",
    "content": "from unittest.mock import MagicMock, patch\n\nfrom slack_sdk import WebClient\nfrom slack_sdk.errors import SlackApiError\n\nfrom pdf_bot.feedback import FeedbackRepository\nfrom tests.telegram_internal import TelegramTestMixin\n\n\nclass TestFeedbackRepository(TelegramTestMixin):\n    SLACK_CHANNEL = \"#pdf-bot-feedback\"\n\n    def setup_method(self) -> None:\n        self.slack_client = MagicMock(spec=WebClient)\n        self.sut = FeedbackRepository(self.slack_client)\n\n    def test_save_feedback(self) -> None:\n        self._save_feedback_and_assert_slack_client()\n\n    def test_save_feedback_error(self) -> None:\n        error = SlackApiError(\"Error\", \"Response\")\n        self.slack_client.chat_postMessage.side_effect = error\n\n        with (\n            patch(\"pdf_bot.feedback.feedback_repository.logger\") as logger,\n            patch(\"pdf_bot.feedback.feedback_repository.capture_exception\") as capture_exception,\n        ):\n            self._save_feedback_and_assert_slack_client()\n\n            logger.exception.assert_called_once_with(\"Failed to send feedback to Slack\")\n            capture_exception.assert_called_once_with(error)\n\n    def _save_feedback_and_assert_slack_client(self) -> None:\n        self.sut.save_feedback(self.TELEGRAM_CHAT_ID, self.TELEGRAM_USERNAME, self.TELEGRAM_TEXT)\n        self.slack_client.chat_postMessage.assert_called_once_with(\n            channel=self.SLACK_CHANNEL,\n            text=(\n                \"Feedback received from\"\n                f\" @{self.TELEGRAM_USERNAME} ({self.TELEGRAM_CHAT_ID}):\\n\\n{self.TELEGRAM_TEXT}\"\n            ),\n        )\n"
  },
  {
    "path": "tests/feedback/test_feedback_service.py",
    "content": "from unittest.mock import MagicMock, patch\n\nimport pytest\nfrom telegram.ext import ConversationHandler\n\nfrom pdf_bot.feedback import FeedbackRepository, FeedbackService\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestFeedbackService(LanguageServiceTestMixin, TelegramServiceTestMixin, TelegramTestMixin):\n    WAIT_FEEDBACK = 0\n    VALID_LANGUAGE_CODE = \"en\"\n    CANCEL = \"Cancel\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.feedback_repository = MagicMock(spec=FeedbackRepository)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = FeedbackService(\n            self.feedback_repository, self.language_service, self.telegram_service\n        )\n\n        self.detect_patcher = patch(\n            \"pdf_bot.feedback.feedback_service.detect\",\n            return_value=self.VALID_LANGUAGE_CODE,\n        )\n        self.detect = self.detect_patcher.start()\n\n    def teardown_method(self) -> None:\n        self.detect_patcher.stop()\n        super().teardown_method()\n\n    @pytest.mark.asyncio\n    async def test_ask_feedback(self) -> None:\n        actual = await self.sut.ask_feedback(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_FEEDBACK\n        self.telegram_service.reply_with_cancel_markup.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_text_save_feedback(self) -> None:\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self._assert_save_feedback_and_reply_text()\n\n    @pytest.mark.asyncio\n    async def test_check_text_save_feedback_invalid_language(self) -> None:\n        self.detect.return_value = \"clearly_invalid_language\"\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_FEEDBACK\n        self.feedback_repository.save_feedback.assert_not_called()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_text_cancel(self) -> None:\n        self.telegram_message.text = self.CANCEL\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.cancel_conversation.assert_called_once_with(\n            self.telegram_update, self.telegram_context\n        )\n        self.feedback_repository.save_feedback.assert_not_called()\n\n    def _assert_save_feedback_and_reply_text(self) -> None:\n        self.feedback_repository.save_feedback.assert_called_once_with(\n            self.TELEGRAM_CHAT_ID, self.TELEGRAM_USERNAME, self.TELEGRAM_TEXT\n        )\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n"
  },
  {
    "path": "tests/file/__init__.py",
    "content": ""
  },
  {
    "path": "tests/file/test_file_handler.py",
    "content": "import re\nfrom unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import (\n    CallbackQueryHandler,\n    CommandHandler,\n    ConversationHandler,\n    MessageHandler,\n    filters,\n)\n\nfrom pdf_bot.file import FileHandler, FileService\nfrom pdf_bot.file_processor import AbstractFileProcessor\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestFileHandler(TelegramServiceTestMixin, TelegramTestMixin):\n    STATE = \"state\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.file_service = MagicMock(spec=FileService)\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = FileHandler(self.file_service, self.telegram_service)\n\n    @pytest.mark.asyncio\n    async def test_handlers(self) -> None:\n        actual = self.sut.handlers\n        assert len(actual) == 1\n\n        handler = actual[0]\n        assert isinstance(handler, ConversationHandler)\n\n        entry_points = handler.entry_points\n        assert len(entry_points) == 2\n\n        assert isinstance(entry_points[0], MessageHandler)\n        assert entry_points[0].filters == filters.Document.PDF\n\n        assert isinstance(entry_points[1], MessageHandler)\n        assert entry_points[1].filters.name == (filters.PHOTO | filters.Document.IMAGE).name\n\n        assert AbstractFileProcessor.WAIT_FILE_TASK in handler.states\n\n        fallbacks = handler.fallbacks\n        assert len(fallbacks) == 2\n\n        assert isinstance(fallbacks[0], CallbackQueryHandler)\n        assert fallbacks[0].pattern == re.compile(r\"^cancel$\")\n\n        assert isinstance(fallbacks[1], CommandHandler)\n        assert fallbacks[1].commands == {\"cancel\"}\n\n        assert handler.allow_reentry is True\n\n        for handler in entry_points + fallbacks:\n            await handler.callback(self.telegram_update, self.telegram_context)\n\n        self.file_service.check_pdf.assert_called_once()\n        self.file_service.check_image.assert_called_once()\n        assert self.telegram_service.cancel_conversation.call_count == 2\n"
  },
  {
    "path": "tests/file/test_file_service.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.constants import FileSizeLimit\nfrom telegram.ext import ConversationHandler\n\nfrom pdf_bot.file import FileService\nfrom pdf_bot.image_processor import ImageTaskProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestFileService(LanguageServiceTestMixin, TelegramServiceTestMixin, TelegramTestMixin):\n    STATE = \"state\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n        self.image_task_processor = MagicMock(spec=ImageTaskProcessor)\n        self.pdf_task_processor = MagicMock(spec=ImageTaskProcessor)\n\n        self.sut = FileService(\n            self.telegram_service,\n            self.language_service,\n            self.image_task_processor,\n            self.pdf_task_processor,\n        )\n\n    @pytest.mark.asyncio\n    async def test_check_pdf(self) -> None:\n        self.telegram_document.file_size = FileSizeLimit.FILESIZE_DOWNLOAD\n        self.pdf_task_processor.ask_task.return_value = self.STATE\n\n        actual = await self.sut.check_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == self.STATE\n        self.pdf_task_processor.ask_task.assert_called_once_with(\n            self.telegram_update, self.telegram_context\n        )\n\n    @pytest.mark.asyncio\n    async def test_check_pdf_too_big(self) -> None:\n        self.telegram_document.file_size = FileSizeLimit.FILESIZE_DOWNLOAD + 1\n\n        actual = await self.sut.check_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.pdf_task_processor.ask_task.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_check_image(self) -> None:\n        self.telegram_document.file_size = FileSizeLimit.FILESIZE_DOWNLOAD\n        self.image_task_processor.ask_task.return_value = self.STATE\n\n        actual = await self.sut.check_image(self.telegram_update, self.telegram_context)\n\n        assert actual == self.STATE\n        self.image_task_processor.ask_task.assert_called_once_with(\n            self.telegram_update, self.telegram_context\n        )\n\n    @pytest.mark.asyncio\n    async def test_check_image_too_big(self) -> None:\n        self.telegram_document.file_size = FileSizeLimit.FILESIZE_DOWNLOAD + 1\n\n        actual = await self.sut.check_image(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.pdf_task_processor.ask_task.assert_not_called()\n"
  },
  {
    "path": "tests/file_processor/__init__.py",
    "content": ""
  },
  {
    "path": "tests/file_processor/test_abstract_file_processor.py",
    "content": "from collections.abc import AsyncGenerator, Sequence\nfrom contextlib import asynccontextmanager\nfrom pathlib import Path\nfrom unittest.mock import MagicMock, patch\n\nimport pytest\nfrom telegram import Update\nfrom telegram.error import BadRequest\nfrom telegram.ext import BaseHandler, ContextTypes, ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import CallbackQueryDataTypeError\nfrom pdf_bot.file_processor import AbstractFileProcessor, ErrorHandlerType\nfrom pdf_bot.file_processor.errors import DuplicateClassError\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\nfrom pdf_bot.telegram_internal import TelegramGetUserDataError, TelegramService\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.path_test_mixin import PathTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass GenericError(Exception):\n    pass\n\n\nclass CustomError(Exception):\n    pass\n\n\nclass UnknownError(Exception):\n    pass\n\n\nclass MockProcessor(PathTestMixin, AbstractFileProcessor):\n    PROCESS_RESULT = \"process_result\"\n    TASK_TYPE = TaskType.decrypt_pdf\n    TASK_DATA_LIST = (TaskData(\"a\", FileData), TaskData(\"b\", FileData))\n\n    def __init__(\n        self,\n        telegram_service: TelegramService,\n        language_service: LanguageService,\n        bypass_init_check: bool = False,\n    ) -> None:\n        super().__init__(telegram_service, language_service, bypass_init_check)\n        self.path = self.mock_file_path()\n        self.file_task_result = FileTaskResult(self.path)\n\n    @classmethod\n    def get_task_data_list(cls) -> Sequence[TaskData]:\n        return cls.TASK_DATA_LIST\n\n    @property\n    def task_type(self) -> TaskType:\n        return self.TASK_TYPE\n\n    @property\n    def task_data(self) -> TaskData:\n        return MagicMock(spec=TaskData)\n\n    @property\n    def handler(self) -> BaseHandler:\n        return MagicMock(spec=BaseHandler)\n\n    @asynccontextmanager\n    async def process_file_task(self, _file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        yield self.file_task_result\n\n\nclass MockProcessorWithGenericError(MockProcessor):\n    @property\n    def generic_error_types(self) -> set[type[Exception]]:\n        return {GenericError}\n\n\nclass MockProcessorWithCustomErrorHandler(MockProcessor):\n    CUSTOM_ERROR_STATE = \"custom_error_state\"\n\n    @property\n    def custom_error_handlers(\n        self,\n    ) -> dict[type[Exception], ErrorHandlerType]:\n        return {CustomError: self._handle_custom_error}\n\n    async def _handle_custom_error(\n        self,\n        _update: Update,\n        _context: ContextTypes.DEFAULT_TYPE,\n        _exception: Exception,\n        _file_data: FileData,\n    ) -> str:\n        return self.CUSTOM_ERROR_STATE\n\n\nclass TestAbstractFileProcessorInit(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.file_processors_patcher = patch(\n            \"pdf_bot.file_processor.abstract_file_processor.AbstractFileProcessor._FILE_PROCESSORS\"\n        )\n        self.file_processors = self.file_processors_patcher.start()\n\n    def teardown_method(self) -> None:\n        self.file_processors_patcher.stop()\n        super().teardown_method()\n\n    def test_init(self) -> None:\n        processors: dict = {}\n        self.file_processors.__contains__.side_effect = processors.__contains__\n\n        proc = MockProcessor(self.telegram_service, self.language_service)\n\n        self.file_processors.__setitem__.assert_called_once_with(proc.__class__.__name__, proc)\n\n    def test_init_already_initialized(self) -> None:\n        processors: dict = {MockProcessor.__name__: MagicMock()}\n        self.file_processors.__contains__.side_effect = processors.__contains__\n\n        with pytest.raises(DuplicateClassError):\n            MockProcessor(self.telegram_service, self.language_service)\n\n        self.file_processors.__setitem__.assert_not_called()\n\n\nclass TestAbstractFileProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    BACK = \"Back\"\n    WAIT_FILE_TASK = \"wait_file_task\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.telegram_update.callback_query = None\n\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = MockProcessor(\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    @pytest.mark.asyncio\n    async def test_ask_task(self) -> None:\n        self.telegram_update.callback_query = self.telegram_callback_query\n\n        with patch.object(\n            self.sut, \"ask_task_helper\", return_value=self.WAIT_FILE_TASK\n        ) as ask_task_helper:\n            actual = await self.sut.ask_task(self.telegram_update, self.telegram_context)\n\n            assert actual == self.WAIT_FILE_TASK\n            self.telegram_callback_query.delete_message.assert_called_once()\n            ask_task_helper.assert_called_once_with(\n                self.language_service,\n                self.telegram_update,\n                self.telegram_context,\n                MockProcessor.TASK_DATA_LIST,\n            )\n\n    @pytest.mark.asyncio\n    async def test_ask_task_without_callback_query(self) -> None:\n        self.telegram_update.callback_query = None\n\n        with patch.object(\n            self.sut, \"ask_task_helper\", return_value=self.WAIT_FILE_TASK\n        ) as ask_task_helper:\n            actual = await self.sut.ask_task(self.telegram_update, self.telegram_context)\n\n            assert actual == self.WAIT_FILE_TASK\n            self.telegram_callback_query.delete_message.assert_not_called()\n            ask_task_helper.assert_called_once_with(\n                self.language_service,\n                self.telegram_update,\n                self.telegram_context,\n                MockProcessor.TASK_DATA_LIST,\n            )\n\n    @pytest.mark.asyncio\n    async def test_process_file(self) -> None:\n        actual = await self.sut.process_file(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self._assert_process_file_succeed()\n\n    @pytest.mark.asyncio\n    async def test_process_file_with_result_message(self) -> None:\n        with patch.object(self.sut, \"process_file_task\") as process_file_task:\n            result = FileTaskResult(self.sut.path, self.TELEGRAM_TEXT)\n            process_file_task.return_value.__aenter__.return_value = result\n\n            actual = await self.sut.process_file(self.telegram_update, self.telegram_context)\n\n            assert actual == ConversationHandler.END\n            self._assert_process_file_succeed()\n            self.telegram_service.send_message.assert_called_once_with(\n                self.telegram_update, self.telegram_context, self.TELEGRAM_TEXT\n            )\n\n    @pytest.mark.asyncio\n    async def test_process_file_dir_output(self) -> None:\n        with (\n            patch.object(self.sut, \"process_file_task\") as process_file_task,\n            patch(\"pdf_bot.file_processor.abstract_file_processor.shutil\") as mock_shutil,\n        ):\n            path_with_suffix = self.mock_file_path()\n            dir_path = self.mock_dir_path()\n            dir_path.with_suffix.return_value = path_with_suffix\n\n            result = FileTaskResult(dir_path, self.TELEGRAM_TEXT)\n            process_file_task.return_value.__aenter__.return_value = result\n\n            actual = await self.sut.process_file(self.telegram_update, self.telegram_context)\n\n            assert actual == ConversationHandler.END\n            self._assert_process_file_succeed(path_with_suffix)\n            dir_path.with_suffix.assert_called_once_with(\".zip\")\n            mock_shutil.make_archive(\n                MockProcessor.PROCESS_RESULT, \"zip\", MockProcessor.PROCESS_RESULT\n            )\n\n    @pytest.mark.asyncio\n    async def test_process_file_generic_error_not_registered(self) -> None:\n        with (\n            patch.object(self.sut, \"process_file_task\", side_effect=GenericError),\n            pytest.raises(GenericError),\n        ):\n            await self.sut.process_file(self.telegram_update, self.telegram_context)\n\n        self._assert_get_file_and_message_data()\n        self.telegram_update.effective_message.reply_text.assert_not_called()\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_process_file_error(self) -> None:\n        sut = MockProcessorWithGenericError(\n            self.telegram_service, self.language_service, bypass_init_check=True\n        )\n\n        with patch.object(sut, \"process_file_task\", side_effect=GenericError):\n            actual = await sut.process_file(self.telegram_update, self.telegram_context)\n\n            assert actual == ConversationHandler.END\n            self._assert_get_file_and_message_data()\n            self.telegram_message.reply_text.assert_called_once()\n            self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_process_file_custom_error(self) -> None:\n        sut = MockProcessorWithCustomErrorHandler(\n            self.telegram_service, self.language_service, bypass_init_check=True\n        )\n\n        with patch.object(sut, \"process_file_task\", side_effect=CustomError):\n            actual = await sut.process_file(self.telegram_update, self.telegram_context)\n\n            assert actual == MockProcessorWithCustomErrorHandler.CUSTOM_ERROR_STATE\n            self._assert_get_file_and_message_data()\n            self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_process_file_unknown_error(self) -> None:\n        sut = MockProcessorWithCustomErrorHandler(\n            self.telegram_service, self.language_service, bypass_init_check=True\n        )\n\n        with (\n            patch.object(sut, \"process_file_task\", side_effect=UnknownError),\n            pytest.raises(UnknownError),\n        ):\n            await sut.process_file(self.telegram_update, self.telegram_context)\n\n        self._assert_get_file_and_message_data()\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_process_file_invalid_file_data(self) -> None:\n        self.telegram_service.get_file_data.side_effect = TelegramGetUserDataError()\n\n        actual = await self.sut.process_file(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.get_file_data.assert_called_once_with(self.telegram_context)\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_process_file_with_callback_query(self) -> None:\n        self.telegram_callback_query.data = self.FILE_DATA\n        self.telegram_update.callback_query = self.telegram_callback_query\n\n        actual = await self.sut.process_file(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.answer_query_and_drop_data.assert_called_once_with(\n            self.telegram_context, self.telegram_callback_query\n        )\n        self.telegram_service.send_file.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            self.sut.path,\n            MockProcessor.TASK_TYPE,\n        )\n\n    @pytest.mark.asyncio\n    async def test_process_file_with_callback_query_unknown_data(self) -> None:\n        self.telegram_callback_query.data = None\n        self.telegram_update.callback_query = self.telegram_callback_query\n\n        with pytest.raises(CallbackQueryDataTypeError):\n            await self.sut.process_file(self.telegram_update, self.telegram_context)\n\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\"error\", [TelegramGetUserDataError, BadRequest(\"Error\")])\n    async def test_process_file_process_previous_message_error(self, error: Exception) -> None:\n        self.telegram_service.get_message_data.side_effect = error\n\n        actual = await self.sut.process_file(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self._assert_process_file_succeed()\n        self.telegram_context.bot.delete_message.assert_not_called()\n\n    def _assert_process_file_succeed(self, path: Path | None = None) -> None:\n        if path is None:\n            path = self.sut.path\n\n        self._assert_get_file_and_message_data()\n        self.telegram_service.send_file.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            path,\n            MockProcessor.TASK_TYPE,\n        )\n\n    def _assert_get_file_and_message_data(self) -> None:\n        self.telegram_service.get_file_data.assert_called_once_with(self.telegram_context)\n        self.telegram_service.get_message_data.assert_called_once_with(self.telegram_context)\n"
  },
  {
    "path": "tests/file_processor/test_abstract_file_task_processor.py",
    "content": "from unittest.mock import MagicMock, patch\n\nimport pytest\n\nfrom pdf_bot.file_processor import AbstractFileProcessor, AbstractFileTaskProcessor\nfrom pdf_bot.models import FileData, TaskData\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramTestMixin\n\n\nclass MockProcessor(AbstractFileTaskProcessor):\n    TASK_DATA_LIST = (TaskData(\"a\", FileData), TaskData(\"b\", FileData))\n\n    @property\n    def processor_type(self) -> type[AbstractFileProcessor]:\n        mock_type = MagicMock(spec=AbstractFileProcessor)\n        mock_type.get_task_data_list.return_value = self.TASK_DATA_LIST\n        return mock_type\n\n\nclass TestAbstractFileTaskProcessor(LanguageServiceTestMixin, TelegramTestMixin):\n    WAIT_FILE_TASK = \"wait_file_task\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.language_service = self.mock_language_service()\n        self.sut = MockProcessor(self.language_service)\n\n    @pytest.mark.asyncio\n    async def test_ask_task(self) -> None:\n        with patch.object(\n            self.sut, \"ask_task_helper\", return_value=self.WAIT_FILE_TASK\n        ) as ask_task_helper:\n            actual = await self.sut.ask_task(self.telegram_update, self.telegram_context)\n\n            assert actual == self.WAIT_FILE_TASK\n            ask_task_helper.assert_called_once_with(\n                self.language_service,\n                self.telegram_update,\n                self.telegram_context,\n                MockProcessor.TASK_DATA_LIST,\n            )\n"
  },
  {
    "path": "tests/file_processor/test_file_task_mixin.py",
    "content": "from typing import TYPE_CHECKING\n\nimport pytest\nfrom telegram.ext import ConversationHandler\n\nfrom pdf_bot.consts import GENERIC_ERROR\nfrom pdf_bot.file_processor import FileTaskMixin\nfrom pdf_bot.models import FileData, TaskData\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramTestMixin\n\nif TYPE_CHECKING:\n    from telegram import InlineKeyboardMarkup\n\n\nclass TestFileTaskMixin(LanguageServiceTestMixin, TelegramTestMixin):\n    WAIT_FILE_TASK = \"wait_file_task\"\n    TASK_DATA_LIST = (TaskData(\"a\", FileData), TaskData(\"b\", FileData))\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.language_service = self.mock_language_service()\n        self.sut = FileTaskMixin()\n\n    @pytest.mark.asyncio\n    async def test_ask_task_helper(self) -> None:\n        actual = await self.sut.ask_task_helper(\n            self.language_service,\n            self.telegram_update,\n            self.telegram_context,\n            self.TASK_DATA_LIST,\n        )\n\n        assert actual == self.WAIT_FILE_TASK\n        self._assert_inline_keyboard()\n\n    @pytest.mark.asyncio\n    async def test_ask_task_helper_without_user_data(self) -> None:\n        self.telegram_context.user_data = None\n\n        actual = await self.sut.ask_task_helper(\n            self.language_service,\n            self.telegram_update,\n            self.telegram_context,\n            self.TASK_DATA_LIST,\n        )\n\n        assert actual == self.WAIT_FILE_TASK\n        self._assert_inline_keyboard()\n\n    @pytest.mark.asyncio\n    async def test_ask_task_helper_without_file_data_and_file(self) -> None:\n        self.telegram_context.user_data = self.telegram_message.document = (\n            self.telegram_message.photo\n        ) = None\n\n        actual = await self.sut.ask_task_helper(\n            self.language_service,\n            self.telegram_update,\n            self.telegram_context,\n            self.TASK_DATA_LIST,\n        )\n\n        assert actual == ConversationHandler.END\n        self.telegram_update.effective_message.reply_text.assert_called_once_with(GENERIC_ERROR)\n\n    def _assert_inline_keyboard(self) -> None:\n        tasks = self.TASK_DATA_LIST\n        _args, kwargs = self.telegram_update.effective_message.reply_text.call_args\n\n        reply_markup: InlineKeyboardMarkup | None = kwargs.get(\"reply_markup\")\n        assert reply_markup is not None\n\n        index = 0\n        for keyboard_list in reply_markup.inline_keyboard:\n            for keyboard in keyboard_list:\n                assert keyboard.text == tasks[index].label\n                assert isinstance(keyboard.callback_data, tasks[index].data_type)\n                index += 1\n            if index >= len(tasks):\n                break\n\n        # Ensure that we've checked all tasks\n        assert index == len(tasks)\n"
  },
  {
    "path": "tests/image/__init__.py",
    "content": ""
  },
  {
    "path": "tests/image/test_image_service.py",
    "content": "from unittest.mock import MagicMock, patch\n\nimport pytest\nfrom img2pdf import Rotation\n\nfrom pdf_bot.cli import CLIService\nfrom pdf_bot.image import ImageService\nfrom pdf_bot.io_internal.io_service import IOService\nfrom pdf_bot.models import FileData\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestImageService(LanguageServiceTestMixin, TelegramServiceTestMixin, TelegramTestMixin):\n    PASSWORD = \"password\"\n    FILE_PATH_STEM = \"file_path_stem\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.cli_service = MagicMock(spec=CLIService)\n        self.telegram_service = self.mock_telegram_service()\n\n        self.io_service = MagicMock(spec=IOService)\n        self.io_service.create_temp_pdf_file.return_value.__enter__.return_value = self.file_path\n\n        self.sut = ImageService(\n            self.cli_service,\n            self.io_service,\n            self.telegram_service,\n        )\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\"num_files\", [0, 1, 2, 5])\n    async def test_beautify_and_convert_images_to_pdf(self, num_files: int) -> None:\n        self.file_path.stem = self.FILE_PATH_STEM\n        file_data_list, file_ids, file_paths = self._get_file_data_list(num_files)\n        self.telegram_service.download_files.return_value.__aenter__.return_value = file_paths\n\n        with patch(\"pdf_bot.image.image_service.noteshrink\") as noteshrink:\n            async with self.sut.beautify_and_convert_images_to_pdf(file_data_list) as actual:\n                assert actual == self.file_path\n                self.telegram_service.download_files.assert_called_once_with(file_ids)\n                self.io_service.create_temp_pdf_file.assert_called_once_with(\"Beautified\")\n                noteshrink.notescan_main.assert_called_once_with(\n                    file_paths,\n                    basename=f\"{self.FILE_PATH_STEM}_page\",\n                    pdfname=self.file_path,\n                )\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\"num_files\", [0, 1, 2, 5])\n    async def test_convert_images_to_pdf(self, num_files: int) -> None:\n        image_bytes = \"image_bytes\"\n        file_data_list, file_ids, file_paths = self._get_file_data_list(num_files)\n        buffered_writer = self.mock_path_open(self.file_path)\n\n        file_path_strs = [str(x) for x in file_paths]\n        self.telegram_service.download_files.return_value.__aenter__.return_value = file_paths\n\n        with patch(\"pdf_bot.image.image_service.img2pdf\") as img2pdf:\n            img2pdf.convert.return_value = image_bytes\n\n            async with self.sut.convert_images_to_pdf(file_data_list) as actual:\n                assert actual == self.file_path\n\n                self.telegram_service.download_files.assert_called_once_with(file_ids)\n                self.io_service.create_temp_pdf_file.assert_called_once_with(\"Converted\")\n\n                self.file_path.open.assert_called_once_with(\"wb\")\n                img2pdf.convert.assert_called_once_with(file_path_strs, rotation=Rotation.ifvalid)\n                buffered_writer.write.assert_called_once_with(image_bytes)\n\n    def _get_file_data_list(\n        self, num_files: int\n    ) -> tuple[list[FileData], list[str], list[MagicMock]]:\n        file_data_list = []\n        file_ids = []\n        file_paths = []\n\n        for i in range(num_files):\n            file_data = FileData(f\"id_{i}\", f\"name_{i}\")\n            file_data_list.append(file_data)\n            file_ids.append(file_data.id)\n            file_paths.append(self.mock_file_path())\n\n        return file_data_list, file_ids, file_paths\n"
  },
  {
    "path": "tests/image_handler/__init__.py",
    "content": ""
  },
  {
    "path": "tests/image_handler/test_batch_image_handler.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CommandHandler, ConversationHandler, MessageHandler, filters\n\nfrom pdf_bot.consts import TEXT_FILTER\nfrom pdf_bot.image_handler import BatchImageHandler, BatchImageService\nfrom tests.telegram_internal import TelegramServiceTestMixin\n\n\nclass TestCompareHandlers(TelegramServiceTestMixin):\n    IMAGE_COMMAND = \"image\"\n    CANCEL_COMMAND = \"cancel\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.image_service = MagicMock(spec=BatchImageService)\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = BatchImageHandler(self.image_service, self.telegram_service)\n\n    @pytest.mark.asyncio\n    async def test_handlers(self) -> None:\n        actual = self.sut.handlers\n        assert len(actual) == 1\n\n        handler = actual[0]\n        assert isinstance(handler, ConversationHandler)\n\n        entry_points = handler.entry_points\n        assert len(entry_points) == 1\n        assert isinstance(entry_points[0], CommandHandler)\n        assert entry_points[0].commands == {self.IMAGE_COMMAND}\n\n        states = handler.states\n        assert BatchImageService.WAIT_IMAGE in states\n        wait_image = states[BatchImageService.WAIT_IMAGE]\n        assert len(wait_image) == 2\n\n        assert isinstance(wait_image[0], MessageHandler)\n        assert wait_image[0].filters.name == (filters.Document.IMAGE | filters.PHOTO).name\n\n        assert isinstance(wait_image[1], MessageHandler)\n        assert wait_image[1].filters.name == TEXT_FILTER.name\n\n        fallbacks = handler.fallbacks\n        assert len(fallbacks) == 1\n\n        assert isinstance(fallbacks[0], CommandHandler)\n        assert fallbacks[0].commands == {self.CANCEL_COMMAND}\n\n        for handler in entry_points + wait_image + fallbacks:\n            await handler.callback(self.telegram_update, self.telegram_context)\n\n        self.image_service.ask_first_image.assert_called_once()\n        self.image_service.check_image.assert_called_once()\n        self.image_service.check_text.assert_called_once()\n        self.telegram_service.cancel_conversation.assert_called_once()\n"
  },
  {
    "path": "tests/image_handler/test_batch_image_service.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.image import ImageService\nfrom pdf_bot.image_handler import BatchImageService\nfrom pdf_bot.models import FileData\nfrom pdf_bot.telegram_internal import TelegramServiceError\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestBatchImageService(LanguageServiceTestMixin, TelegramServiceTestMixin, TelegramTestMixin):\n    WAIT_IMAGE = 0\n    IMAGE_DATA = \"image_data\"\n\n    REMOVE_LAST_FILE = \"Remove last file\"\n    BEAUTIFY = \"Beautify\"\n    TO_PDF = \"To PDF\"\n    CANCEL = \"Cancel\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.file_data_list = MagicMock(spec=list[FileData])\n\n        self.image_service = MagicMock(spec=ImageService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n        self.telegram_service.get_user_data.side_effect = None\n\n        self.sut = BatchImageService(\n            self.image_service,\n            self.telegram_service,\n            self.language_service,\n        )\n\n    @pytest.mark.asyncio\n    async def test_ask_first_image(self) -> None:\n        actual = await self.sut.ask_first_image(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_IMAGE\n        self._assert_ask_first_image()\n\n    @pytest.mark.asyncio\n    async def test_check_image(self) -> None:\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n\n        actual = await self.sut.check_image(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_IMAGE\n\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA\n        )\n        self.file_data_list.append.assert_called_once_with(\n            FileData(self.TELEGRAM_DOCUMENT_ID, self.TELEGRAM_DOCUMENT_NAME)\n        )\n        self.telegram_service.update_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA, self.file_data_list\n        )\n\n        self.telegram_service.send_file_names.assert_called_once()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_image_invalid_image(self) -> None:\n        self.telegram_service.check_image.side_effect = TelegramServiceError()\n\n        actual = await self.sut.check_image(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_IMAGE\n        self.telegram_context.user_data.__getitem__.assert_not_called()\n        self.telegram_service.send_file_names.assert_not_called()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_image_user_data_error(self) -> None:\n        self.telegram_service.get_user_data.side_effect = TelegramServiceError()\n\n        actual = await self.sut.check_image(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA\n        )\n        self.file_data_list.append.assert_not_called()\n        self.telegram_service.update_user_data.assert_not_called()\n\n        self.telegram_service.send_file_names.assert_not_called()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_text_remove_last(self) -> None:\n        self.telegram_message.text = self.REMOVE_LAST_FILE\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_IMAGE\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA\n        )\n        self.file_data_list.pop.assert_called_once()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n        self._assert_ask_first_image()\n\n    @pytest.mark.asyncio\n    async def test_check_text_remove_last_with_existing_file(self) -> None:\n        self.telegram_message.text = self.REMOVE_LAST_FILE\n        self.file_data_list.__len__.return_value = 1\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_IMAGE\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA\n        )\n        self.file_data_list.pop.assert_called_once()\n        assert self.telegram_update.effective_message.reply_text.call_count == 2\n        self.telegram_service.update_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA, self.file_data_list\n        )\n        self.telegram_service.send_file_names.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_text_remove_last_remove_error(self) -> None:\n        self.telegram_message.text = self.REMOVE_LAST_FILE\n        self.file_data_list.pop.side_effect = IndexError()\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_IMAGE\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA\n        )\n        self.file_data_list.pop.assert_called_once()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n        self._assert_ask_first_image()\n\n    @pytest.mark.asyncio\n    async def test_check_text_beautify(self) -> None:\n        self.telegram_message.text = self.BEAUTIFY\n        self.file_data_list.__len__.return_value = 2\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n        self.image_service.beautify_and_convert_images_to_pdf.return_value.__aenter__.return_value = (  # noqa: E501\n            self.file_path\n        )\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA\n        )\n        self.image_service.beautify_and_convert_images_to_pdf.assert_called_once_with(\n            self.file_data_list\n        )\n        self.telegram_service.send_file.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            self.file_path,\n            TaskType.beautify_image,\n        )\n\n    @pytest.mark.asyncio\n    async def test_check_text_to_pdf(self) -> None:\n        self.telegram_message.text = self.TO_PDF\n        self.file_data_list.__len__.return_value = 2\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n        self.image_service.convert_images_to_pdf.return_value.__aenter__.return_value = (\n            self.file_path\n        )\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA\n        )\n        self.image_service.convert_images_to_pdf.assert_called_once_with(self.file_data_list)\n        self.telegram_service.send_file.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            self.file_path,\n            TaskType.image_to_pdf,\n        )\n\n    @pytest.mark.asyncio\n    async def test_check_text_process_with_one_file_only(self) -> None:\n        self.telegram_message.text = self.BEAUTIFY\n        self.file_data_list.__len__.return_value = 1\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_IMAGE\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA\n        )\n        self.image_service.beautify_and_convert_images_to_pdf.assert_not_called()\n        self.image_service.convert_images_to_pdf.assert_not_called()\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_check_text_process_without_files(self) -> None:\n        self.telegram_message.text = self.BEAUTIFY\n        self.file_data_list.__len__.return_value = 0\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_IMAGE\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA\n        )\n        self.image_service.beautify_and_convert_images_to_pdf.assert_not_called()\n        self.image_service.convert_images_to_pdf.assert_not_called()\n        self.telegram_service.send_file.assert_not_called()\n        self._assert_ask_first_image()\n\n    @pytest.mark.asyncio\n    async def test_check_text_cancel(self) -> None:\n        self.telegram_message.text = self.CANCEL\n        self.telegram_service.cancel_conversation.return_value = ConversationHandler.END\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.cancel_conversation.assert_called_once_with(\n            self.telegram_update, self.telegram_context\n        )\n\n    @pytest.mark.asyncio\n    async def test_check_text_unknown_text(self) -> None:\n        self.telegram_message.text = \"clearly_unknown\"\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n        assert actual == self.WAIT_IMAGE\n\n    @pytest.mark.parametrize(\"text\", [REMOVE_LAST_FILE, BEAUTIFY])\n    @pytest.mark.asyncio\n    async def test_check_text_telegram_service_error(self, text: str) -> None:\n        self.telegram_message.text = text\n        self.telegram_service.get_user_data.side_effect = TelegramServiceError()\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA\n        )\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    def _assert_ask_first_image(self) -> None:\n        self.telegram_service.update_user_data.assert_called_once_with(\n            self.telegram_context, self.IMAGE_DATA, []\n        )\n        self.telegram_service.reply_with_cancel_markup.assert_called_once()\n"
  },
  {
    "path": "tests/image_processor/__init__.py",
    "content": ""
  },
  {
    "path": "tests/image_processor/test_abstract_image_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom unittest.mock import MagicMock, patch\n\nimport pytest\nfrom telegram.ext import BaseHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.file_processor.errors import DuplicateClassError\nfrom pdf_bot.image import ImageService\nfrom pdf_bot.image_processor import AbstractImageProcessor\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin\n\n\nclass MockProcessor(AbstractImageProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return MagicMock(spec=TaskType)\n\n    @property\n    def task_data(self) -> TaskData:\n        return MagicMock(spec=TaskData)\n\n    @property\n    def handler(self) -> BaseHandler:\n        return MagicMock(spec=BaseHandler)\n\n    @asynccontextmanager\n    async def process_file_task(self, _file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        yield MagicMock(spec=FileTaskResult)\n\n\nclass TestAbstractImageProcessor(LanguageServiceTestMixin, TelegramServiceTestMixin):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.image_service = MagicMock(spec=ImageService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.image_processors_patcher = patch(\n            \"pdf_bot.image_processor.abstract_image_processor.AbstractImageProcessor\"\n            \"._IMAGE_PROCESSORS\"\n        )\n        self.file_processor_patcher = patch(\n            \"pdf_bot.image_processor.abstract_image_processor.AbstractFileProcessor.__init__\"\n        )\n\n        self.image_processors = self.image_processors_patcher.start()\n        self.file_processor_patcher.start()\n\n    def teardown_method(self) -> None:\n        self.image_processors_patcher.stop()\n        self.file_processor_patcher.stop()\n        super().teardown_method()\n\n    def test_init(self) -> None:\n        processors: dict = {}\n        self.image_processors.__contains__.side_effect = processors.__contains__\n\n        proc = MockProcessor(self.image_service, self.telegram_service, self.language_service)\n\n        self.image_processors.__setitem__.assert_called_once_with(proc.__class__.__name__, proc)\n\n    def test_init_already_initialized(self) -> None:\n        processors: dict = {MockProcessor.__name__: MagicMock()}\n        self.image_processors.__contains__.side_effect = processors.__contains__\n\n        with pytest.raises(DuplicateClassError):\n            MockProcessor(self.image_service, self.telegram_service, self.language_service)\n\n        self.image_processors.__setitem__.assert_not_called()\n\n    def test_get_task_data_list(self) -> None:\n        task_data = MagicMock(spec=TaskData)\n        processor = MagicMock(spec=AbstractImageProcessor)\n        processor.task_data = task_data\n        self.image_processors.values.return_value = [processor]\n\n        actual = AbstractImageProcessor.get_task_data_list()\n\n        assert actual == [task_data]\n"
  },
  {
    "path": "tests/image_processor/test_beautify_image_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.image import ImageService\nfrom pdf_bot.image_processor import BeautifyImageProcessor\nfrom pdf_bot.image_processor.beautify_image_processor import BeautifyImageData\nfrom pdf_bot.models import TaskData\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestBeautifyImageProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.image_service = MagicMock(spec=ImageService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = BeautifyImageProcessor(\n            self.image_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.beautify_image\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Beautify\", BeautifyImageData)\n\n    def test_handler(self) -> None:\n        actual = self.sut.handler\n\n        assert isinstance(actual, CallbackQueryHandler)\n        assert actual.pattern == BeautifyImageData\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        self.image_service.beautify_and_convert_images_to_pdf.return_value.__aenter__.return_value = (  # noqa: E501\n            self.file_path\n        )\n\n        async with self.sut.process_file_task(self.FILE_DATA) as actual:\n            assert actual == self.file_task_result\n            self.image_service.beautify_and_convert_images_to_pdf.assert_called_once_with(\n                [self.FILE_DATA]\n            )\n"
  },
  {
    "path": "tests/image_processor/test_image_task_processor.py",
    "content": "from pdf_bot.image_processor import AbstractImageProcessor, ImageTaskProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramTestMixin\n\n\nclass TestImageTaskProcessor(\n    LanguageServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.language_service = self.mock_language_service()\n        self.sut = ImageTaskProcessor(self.language_service)\n\n    def test_processor_type(self) -> None:\n        actual = self.sut.processor_type\n        assert actual == AbstractImageProcessor\n"
  },
  {
    "path": "tests/image_processor/test_image_to_pdf_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.image import ImageService\nfrom pdf_bot.image_processor import ImageToPdfProcessor\nfrom pdf_bot.image_processor.image_to_pdf_processor import ImageToPdfData\nfrom pdf_bot.models import TaskData\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestImageToPdfProcessorProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.image_service = MagicMock(spec=ImageService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = ImageToPdfProcessor(\n            self.image_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.image_to_pdf\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"To PDF\", ImageToPdfData)\n\n    def test_handler(self) -> None:\n        actual = self.sut.handler\n\n        assert isinstance(actual, CallbackQueryHandler)\n        assert actual.pattern == ImageToPdfData\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        self.image_service.convert_images_to_pdf.return_value.__aenter__.return_value = (\n            self.file_path\n        )\n\n        async with self.sut.process_file_task(self.FILE_DATA) as actual:\n            assert actual == self.file_task_result\n            self.image_service.convert_images_to_pdf.assert_called_once_with([self.FILE_DATA])\n"
  },
  {
    "path": "tests/io_internal/__init__.py",
    "content": ""
  },
  {
    "path": "tests/io_internal/test_io_service.py",
    "content": "from pathlib import Path\nfrom tempfile import TemporaryDirectory\nfrom unittest.mock import MagicMock, patch\n\nimport pytest\n\nfrom pdf_bot.io_internal import IOService\n\n\nclass TestIOService:\n    FILE_NAME = \"file_name\"\n    FILE_PATH = Path(FILE_NAME)\n    FILE_PREFIX = \"file_prefix\"\n    FILE_PREFIX_UNDERSCORE = f\"{FILE_PREFIX}_\"\n    FILE_SUFFIX = \"file_suffix\"\n\n    def setup_method(self) -> None:\n        self.tf = MagicMock()\n        self.tf.name = self.FILE_NAME\n\n        self.tf_cls_patcher = patch(\n            \"pdf_bot.io_internal.io_service.NamedTemporaryFile\", return_value=self.tf\n        )\n        self.tf_cls = self.tf_cls_patcher.start()\n\n        self.sut = IOService()\n\n    def teardown_method(self) -> None:\n        self.tf_cls_patcher.stop()\n\n    @pytest.mark.parametrize(\"prefix\", [None, FILE_PREFIX, FILE_PREFIX_UNDERSCORE])\n    @pytest.mark.asyncio\n    async def test_create_temp_directory(self, prefix: str | None) -> None:\n        dir_name = \"dir_name\"\n        td = MagicMock(spec=TemporaryDirectory)\n\n        with patch(\"pdf_bot.io_internal.io_service.TemporaryDirectory\") as td_cls:\n            td_cls.return_value = td\n            td.name = dir_name\n\n            with self.sut.create_temp_directory(prefix) as actual:\n                assert actual == Path(dir_name)\n\n            expected_prefix = self._get_expected_prefix(prefix)\n            td_cls.assert_called_once_with(prefix=expected_prefix)\n            td.cleanup.assert_called_once()\n\n    @pytest.mark.parametrize(\n        (\"prefix\", \"suffix\"),\n        [\n            (None, None),\n            (FILE_PREFIX, None),\n            (FILE_PREFIX_UNDERSCORE, None),\n            (None, FILE_SUFFIX),\n            (FILE_PREFIX, FILE_SUFFIX),\n            (FILE_PREFIX_UNDERSCORE, FILE_SUFFIX),\n        ],\n    )\n    @pytest.mark.asyncio\n    async def test_create_temp_file(self, prefix: str | None, suffix: str | None) -> None:\n        with self.sut.create_temp_file(prefix, suffix) as actual:\n            assert actual == self.FILE_PATH\n\n        expected_prefix = self._get_expected_prefix(prefix)\n        self._assert_temp_file(expected_prefix, suffix)\n\n    @pytest.mark.parametrize(\"num_files\", [0, 1, 2, 5])\n    @pytest.mark.asyncio\n    async def test_create_temp_files(self, num_files: int) -> None:\n        files = []\n        paths = []\n\n        for i in range(num_files):\n            name = f\"{self.FILE_NAME}_{i}\"\n            file = MagicMock()\n            file.name = name\n\n            files.append(file)\n            paths.append(Path(name))\n\n        index = 0\n\n        def create_tmp_file() -> MagicMock:\n            nonlocal index\n            file = files[index]\n            index += 1\n            return file\n\n        with patch(\"pdf_bot.io_internal.io_service.NamedTemporaryFile\") as tf:\n            tf.side_effect = create_tmp_file\n            with self.sut.create_temp_files(num_files) as actual:\n                assert actual == paths\n\n            for file in files:\n                file.close.assert_called_once()\n\n    @pytest.mark.parametrize(\"prefix\", [None, FILE_PREFIX, FILE_PREFIX_UNDERSCORE])\n    @pytest.mark.asyncio\n    async def test_create_temp_pdf_file(self, prefix: str | None) -> None:\n        with self.sut.create_temp_pdf_file(prefix) as actual:\n            assert actual == self.FILE_PATH\n\n        expected_prefix = self._get_expected_prefix(prefix)\n        self._assert_temp_file(expected_prefix, \".pdf\")\n\n    @pytest.mark.asyncio\n    async def test_create_temp_png_file(self) -> None:\n        with self.sut.create_temp_png_file(self.FILE_PREFIX_UNDERSCORE) as actual:\n            assert actual == self.FILE_PATH\n        self._assert_temp_file(self.FILE_PREFIX_UNDERSCORE, \".png\")\n\n    @pytest.mark.asyncio\n    async def test_create_temp_txt_file(self) -> None:\n        with self.sut.create_temp_txt_file(self.FILE_PREFIX_UNDERSCORE) as actual:\n            assert actual == self.FILE_PATH\n        self._assert_temp_file(self.FILE_PREFIX_UNDERSCORE, \".txt\")\n\n    def _assert_temp_file(self, prefix: str | None, suffix: str | None) -> None:\n        self.tf_cls.assert_called_once_with(prefix=prefix, suffix=suffix)\n        self.tf.close.assert_called_once()\n\n    def _get_expected_prefix(self, prefix: str | None) -> str | None:\n        if prefix is not None and not prefix.endswith(\"_\"):\n            return f\"{prefix}_\"\n        return prefix\n"
  },
  {
    "path": "tests/language/__init__.py",
    "content": "from .language_service_test_mixin import LanguageServiceTestMixin\n\n__all__ = [\"LanguageServiceTestMixin\"]\n"
  },
  {
    "path": "tests/language/language_service_test_mixin.py",
    "content": "from unittest.mock import AsyncMock\n\nfrom pdf_bot.language import LanguageService\n\n\nclass LanguageServiceTestMixin:\n    @staticmethod\n    def mock_language_service() -> AsyncMock:\n        service = AsyncMock(spec=LanguageService)\n        service.set_app_language.return_value = lambda x: x\n        return service\n"
  },
  {
    "path": "tests/language/test_language_handler.py",
    "content": "import pytest\nfrom telegram.ext import CallbackQueryHandler, CommandHandler\n\nfrom pdf_bot.language import LanguageData, LanguageHandler, SetLanguageData\nfrom tests.telegram_internal import TelegramTestMixin\n\nfrom .language_service_test_mixin import LanguageServiceTestMixin\n\n\nclass TestLanguageHandler(LanguageServiceTestMixin, TelegramTestMixin):\n    SET_LANGUAGE_COMMAND = \"setlang\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.language_service = self.mock_language_service()\n        self.sut = LanguageHandler(self.language_service)\n\n    @pytest.mark.asyncio\n    async def test_handlers(self) -> None:\n        actual = self.sut.handlers\n        assert len(actual) == 3\n        handler_0, handler_1, handler_2 = actual\n\n        assert isinstance(handler_0, CommandHandler)\n        assert handler_0.commands == {self.SET_LANGUAGE_COMMAND}\n\n        assert isinstance(handler_1, CallbackQueryHandler)\n        assert handler_1.pattern == SetLanguageData\n\n        assert isinstance(handler_2, CallbackQueryHandler)\n        assert handler_2.pattern == LanguageData\n\n        for handler in actual:\n            await handler.callback(self.telegram_update, self.telegram_context)\n\n        assert self.language_service.send_language_options.call_count == 2\n        self.language_service.update_user_language.assert_called_once_with(\n            self.telegram_update, self.telegram_context\n        )\n"
  },
  {
    "path": "tests/language/test_language_repository.py",
    "content": "from typing import Any, ClassVar\nfrom unittest.mock import MagicMock, patch\n\nfrom google.cloud.datastore import Client, Entity\n\nfrom pdf_bot.consts import LANGUAGE\nfrom pdf_bot.language import LanguageRepository\n\n\nclass TestLanguageRepository:\n    USER_ID = 0\n    LANGUAGE_CODE = \"lang_code\"\n    USER_ENTITY_DICT: ClassVar[dict[str, str]] = {LANGUAGE: LANGUAGE_CODE}\n\n    def setup_method(self) -> None:\n        self.user_entity = MagicMock(spec=Entity)\n        self.db_client = MagicMock(spec=Client)\n\n        self.sut = LanguageRepository(self.db_client)\n\n    def test_get_language(self) -> None:\n        self._mock_user_entity_dict()\n        self.db_client.get.return_value = self.user_entity\n\n        actual = self.sut.get_language(self.USER_ID)\n\n        assert actual == self.LANGUAGE_CODE\n\n    def test_get_language_without_user(self) -> None:\n        self.db_client.get.return_value = None\n        actual = self.sut.get_language(self.USER_ID)\n        assert actual == self.sut.EN_GB_CODE\n\n    def test_get_language_and_language_not_set(self) -> None:\n        self.db_client.get.return_value = self.user_entity\n        actual = self.sut.get_language(self.USER_ID)\n        assert actual == self.sut.EN_GB_CODE\n\n    def test_get_language_legacy_en_code(self) -> None:\n        user_entity_dict = {LANGUAGE: \"en\"}\n        self._mock_user_entity_dict(user_entity_dict)\n        self.db_client.get.return_value = self.user_entity\n\n        actual = self.sut.get_language(self.USER_ID)\n\n        assert actual == self.sut.EN_GB_CODE\n\n    def test_upsert_language(self) -> None:\n        self.db_client.get.return_value = self.user_entity\n\n        self.sut.upsert_language(self.USER_ID, self.LANGUAGE_CODE)\n\n        self.user_entity.__setitem__.assert_called_with(LANGUAGE, self.LANGUAGE_CODE)\n        self.db_client.put.assert_called_once_with(self.user_entity)\n\n    def test_upsert_language_without_user(self) -> None:\n        self.db_client.get.return_value = None\n\n        with patch(\"pdf_bot.language.language_repository.Entity\") as entity_cls:\n            entity_cls.return_value = self.user_entity\n            self.sut.upsert_language(self.USER_ID, self.LANGUAGE_CODE)\n\n        entity_cls.assert_called_once()\n        self.user_entity.__setitem__.assert_called_with(LANGUAGE, self.LANGUAGE_CODE)\n        self.db_client.put.assert_called_once_with(self.user_entity)\n\n    def _mock_user_entity_dict(self, user_entity_dict: dict[str, Any] | None = None) -> None:\n        if user_entity_dict is None:\n            user_entity_dict = self.USER_ENTITY_DICT\n        self.user_entity.__getitem__.side_effect = user_entity_dict.__getitem__\n        self.user_entity.__contains__.side_effect = user_entity_dict.__contains__\n"
  },
  {
    "path": "tests/language/test_language_service.py",
    "content": "from unittest.mock import MagicMock, patch\n\nimport pytest\n\nfrom pdf_bot.errors import CallbackQueryDataTypeError, UserIdError\nfrom pdf_bot.language import LanguageData, LanguageRepository, LanguageService\nfrom tests.telegram_internal.telegram_test_mixin import TelegramTestMixin\n\n\nclass TestLanguageService(TelegramTestMixin):\n    LANGUAGE_CODE = \"language_code\"\n    EN_CODE = \"en_US\"\n    LANGUAGE_DATA = LanguageData(label=\"label\", long_code=EN_CODE)\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.language_repository = MagicMock(spec=LanguageRepository)\n        self.language_repository.get_language.return_value = self.EN_CODE\n\n        self.sut = LanguageService(self.language_repository)\n\n        self.gettext_patcher = patch(\"pdf_bot.language.language_service.gettext\")\n        self.gettext_patcher.start()\n\n    def teardown_method(self) -> None:\n        self.gettext_patcher.stop()\n        super().teardown_method()\n\n    @pytest.mark.parametrize((\"value\", \"expected\"), [(\"es\", \"es_ES\"), (\"clearly_invalid\", None)])\n    def test_get_language_code_from_short_code(self, value: str, expected: str | None) -> None:\n        actual = self.sut.get_language_code_from_short_code(value)\n        assert actual == expected\n\n    @pytest.mark.asyncio\n    async def test_send_language_options(self) -> None:\n        self.telegram_update.callback_query = None\n\n        await self.sut.send_language_options(self.telegram_update, self.telegram_context)\n\n        self.telegram_callback_query.answer.assert_not_called()\n        self.telegram_context.drop_callback_data.assert_not_called()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_send_language_options_with_callback_query(self) -> None:\n        self.telegram_update.callback_query = self.telegram_callback_query\n\n        await self.sut.send_language_options(self.telegram_update, self.telegram_context)\n\n        self.telegram_callback_query.answer.assert_called_once()\n        self.telegram_context.drop_callback_data.assert_not_called()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_get_user_language(self) -> None:\n        self.telegram_user_data.get.return_value = None\n\n        actual = self.sut.get_user_language(self.telegram_update, self.telegram_context)\n\n        assert actual == self.EN_CODE\n        self.language_repository.get_language.assert_called_once_with(self.TELEGRAM_QUERY_USER_ID)\n        self.telegram_user_data.__setitem__.assert_called_once_with(\n            self.LANGUAGE_CODE, self.EN_CODE\n        )\n\n    @pytest.mark.asyncio\n    async def test_get_user_language_cached(self) -> None:\n        self.telegram_user_data.get.return_value = self.EN_CODE\n\n        actual = self.sut.get_user_language(self.telegram_update, self.telegram_context)\n\n        assert actual == self.EN_CODE\n        self.telegram_user_data.__setitem__.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_get_user_language_without_user_data(self) -> None:\n        self.telegram_context.user_data = None\n\n        actual = self.sut.get_user_language(self.telegram_update, self.telegram_context)\n\n        assert actual == self.EN_CODE\n        self.telegram_user_data.__setitem__.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_get_user_language_without_callback_query(self) -> None:\n        self.telegram_user_data.get.return_value = None\n        self.telegram_update.callback_query = None\n\n        actual = self.sut.get_user_language(self.telegram_update, self.telegram_context)\n\n        assert actual == self.EN_CODE\n        self.language_repository.get_language.assert_called_once_with(self.TELEGRAM_USER_ID)\n        self.telegram_user_data.__setitem__.assert_called_once_with(\n            self.LANGUAGE_CODE, self.EN_CODE\n        )\n\n    @pytest.mark.asyncio\n    async def test_get_user_language_with_chat_id(self) -> None:\n        self.telegram_user_data.get.return_value = None\n        self.telegram_update.callback_query = None\n        self.telegram_update.effective_message = None\n        self.telegram_update.effective_chat = self.telegram_chat\n\n        actual = self.sut.get_user_language(self.telegram_update, self.telegram_context)\n\n        assert actual == self.EN_CODE\n        self.language_repository.get_language.assert_called_once_with(self.TELEGRAM_CHAT_ID)\n        self.telegram_user_data.__setitem__.assert_called_once_with(\n            self.LANGUAGE_CODE, self.EN_CODE\n        )\n\n    @pytest.mark.asyncio\n    async def test_get_user_language_without_message_and_chat(self) -> None:\n        self.telegram_user_data.get.return_value = None\n        self.telegram_update.callback_query = None\n        self.telegram_update.effective_message = None\n        self.telegram_update.effective_chat = None\n\n        with pytest.raises(UserIdError):\n            self.sut.get_user_language(self.telegram_update, self.telegram_context)\n\n        self.language_repository.get_language.assert_not_called()\n        self.telegram_user_data.__setitem__.assert_not_called()\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\"side_effect\", [None, KeyError])\n    async def test_update_user_language(self, side_effect: type[Exception] | None) -> None:\n        self.telegram_callback_query.data = self.LANGUAGE_DATA\n        self.telegram_context.drop_callback_data.side_effect = side_effect\n\n        await self.sut.update_user_language(self.telegram_update, self.telegram_context)\n\n        self.telegram_callback_query.answer.assert_called_once()\n        self.telegram_context.drop_callback_data.assert_called_once_with(\n            self.telegram_callback_query\n        )\n        self.language_repository.upsert_language.assert_called_once_with(\n            self.TELEGRAM_QUERY_USER_ID, self.EN_CODE\n        )\n        self.telegram_user_data.__setitem__.assert_called_once_with(\n            self.LANGUAGE_CODE, self.EN_CODE\n        )\n\n    @pytest.mark.asyncio\n    async def test_update_user_language_without_user_data(self) -> None:\n        self.telegram_callback_query.data = self.LANGUAGE_DATA\n        self.telegram_context.user_data = None\n\n        await self.sut.update_user_language(self.telegram_update, self.telegram_context)\n\n        self.language_repository.upsert_language.assert_called_once_with(\n            self.TELEGRAM_QUERY_USER_ID, self.EN_CODE\n        )\n        self.telegram_user_data.__setitem__.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_update_user_language_invalid_callback_query_data(self) -> None:\n        self.telegram_callback_query.data = None\n\n        with pytest.raises(CallbackQueryDataTypeError):\n            await self.sut.update_user_language(self.telegram_update, self.telegram_context)\n\n        self.language_repository.upsert_language.assert_not_called()\n        self.telegram_user_data.__setitem__.assert_not_called()\n"
  },
  {
    "path": "tests/merge/__init__.py",
    "content": ""
  },
  {
    "path": "tests/merge/test_merge_handler.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CommandHandler, ConversationHandler, MessageHandler, filters\n\nfrom pdf_bot.consts import TEXT_FILTER\nfrom pdf_bot.merge import MergeHandler, MergeService\nfrom tests.telegram_internal import TelegramServiceTestMixin\n\n\nclass TestMergeHandler(TelegramServiceTestMixin):\n    MERGE_COMMAND = \"merge\"\n    CANCEL_COMMAND = \"cancel\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.merge_service = MagicMock(spec=MergeService)\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = MergeHandler(self.merge_service, self.telegram_service)\n\n    @pytest.mark.asyncio\n    async def test_conversation_handler(self) -> None:\n        actual = self.sut.handlers\n        assert len(actual) == 1\n\n        handler = actual[0]\n        assert isinstance(handler, ConversationHandler)\n\n        entry_points = handler.entry_points\n        assert len(entry_points) == 1\n        assert isinstance(entry_points[0], CommandHandler)\n        assert entry_points[0].commands == {self.MERGE_COMMAND}\n\n        states = handler.states\n        assert MergeService.WAIT_MERGE_PDF in states\n        wait_image = states[MergeService.WAIT_MERGE_PDF]\n        assert len(wait_image) == 2\n\n        assert isinstance(wait_image[0], MessageHandler)\n        assert wait_image[0].filters == filters.Document.PDF\n\n        assert isinstance(wait_image[1], MessageHandler)\n        assert wait_image[1].filters.name == TEXT_FILTER.name\n\n        fallbacks = handler.fallbacks\n        assert len(fallbacks) == 1\n\n        assert isinstance(fallbacks[0], CommandHandler)\n        assert fallbacks[0].commands == {self.CANCEL_COMMAND}\n\n        for handler in entry_points + wait_image + fallbacks:\n            await handler.callback(self.telegram_update, self.telegram_context)\n\n        self.merge_service.ask_first_pdf.assert_called_once()\n        self.merge_service.check_pdf.assert_called_once()\n        self.merge_service.check_text.assert_called_once()\n        self.telegram_service.cancel_conversation.assert_called_once()\n"
  },
  {
    "path": "tests/merge/test_merge_service.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.merge import MergeService\nfrom pdf_bot.models import FileData\nfrom pdf_bot.pdf import PdfService, PdfServiceError\nfrom pdf_bot.telegram_internal import TelegramServiceError\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestMergeService(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    WAIT_MERGE_PDF = 0\n    MERGE_PDF_DATA = \"merge_pdf_data\"\n\n    REMOVE_LAST_FILE = \"Remove last file\"\n    DONE = \"Done\"\n    CANCEL = \"Cancel\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.file_data_list = MagicMock(spec=list[FileData])\n\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n        self.telegram_service.get_user_data.side_effect = None\n\n        self.sut = MergeService(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n        )\n\n    @pytest.mark.asyncio\n    async def test_ask_first_pdf(self) -> None:\n        actual = await self.sut.ask_first_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_MERGE_PDF\n        self._assert_ask_first_pdf()\n\n    @pytest.mark.asyncio\n    async def test_check_pdf(self) -> None:\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n\n        actual = await self.sut.check_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_MERGE_PDF\n\n        file_data = self.file_data_list.append.call_args.args[0]\n        assert file_data == FileData(self.TELEGRAM_DOCUMENT_ID, self.TELEGRAM_DOCUMENT_NAME)\n\n        self.telegram_service.send_file_names.assert_called_once()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_pdf_invalid_pdf(self) -> None:\n        self.telegram_service.check_pdf_document.side_effect = TelegramServiceError()\n\n        actual = await self.sut.check_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_MERGE_PDF\n        self.telegram_context.user_data.__getitem__.assert_not_called()\n        self.telegram_service.send_file_names.assert_not_called()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_pdf_user_data_error(self) -> None:\n        self.telegram_service.get_user_data.side_effect = TelegramServiceError()\n\n        actual = await self.sut.check_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.MERGE_PDF_DATA\n        )\n        self.file_data_list.append.assert_not_called()\n        self.telegram_service.update_user_data.assert_not_called()\n\n        self.telegram_service.send_file_names.assert_not_called()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_text_remove_last(self) -> None:\n        self.telegram_message.text = self.REMOVE_LAST_FILE\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_MERGE_PDF\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.MERGE_PDF_DATA\n        )\n        self.file_data_list.pop.assert_called_once()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n        self._assert_ask_first_pdf()\n\n    @pytest.mark.asyncio\n    async def test_check_text_remove_last_with_existing_file(self) -> None:\n        self.telegram_message.text = self.REMOVE_LAST_FILE\n        self.file_data_list.__len__.return_value = 1\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_MERGE_PDF\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.MERGE_PDF_DATA\n        )\n        self.file_data_list.pop.assert_called_once()\n        assert self.telegram_update.effective_message.reply_text.call_count == 2\n        self.telegram_service.update_user_data.assert_called_once_with(\n            self.telegram_context, self.MERGE_PDF_DATA, self.file_data_list\n        )\n        self.telegram_service.send_file_names.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_text_remove_last_remove_error(self) -> None:\n        self.telegram_message.text = self.REMOVE_LAST_FILE\n        self.file_data_list.pop.side_effect = IndexError()\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_MERGE_PDF\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.MERGE_PDF_DATA\n        )\n        self.file_data_list.pop.assert_called_once()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n        self._assert_ask_first_pdf()\n\n    @pytest.mark.asyncio\n    async def test_check_text_done_and_merge(self) -> None:\n        self.telegram_message.text = self.DONE\n        self.file_data_list.__len__.return_value = 2\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n        self.pdf_service.merge_pdfs.return_value.__aenter__.return_value = self.file_path\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.MERGE_PDF_DATA\n        )\n        self.pdf_service.merge_pdfs.assert_called_once_with(self.file_data_list)\n        self.telegram_service.send_file.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            self.file_path,\n            TaskType.merge_pdf,\n        )\n\n    @pytest.mark.asyncio\n    async def test_check_text_done_pdf_service_error(self) -> None:\n        self.telegram_message.text = self.DONE\n        self.file_data_list.__len__.return_value = 2\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n        self.pdf_service.merge_pdfs.side_effect = PdfServiceError()\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.MERGE_PDF_DATA\n        )\n        self.pdf_service.merge_pdfs.assert_called_once_with(self.file_data_list)\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_check_text_done_with_one_file_only(self) -> None:\n        self.telegram_message.text = self.DONE\n        self.file_data_list.__len__.return_value = 1\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_MERGE_PDF\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.MERGE_PDF_DATA\n        )\n        self.pdf_service.merge_pdfs.assert_not_called()\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_check_text_done_without_files(self) -> None:\n        self.telegram_message.text = self.DONE\n        self.file_data_list.__len__.return_value = 0\n        self.telegram_service.get_user_data.return_value = self.file_data_list\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_MERGE_PDF\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.MERGE_PDF_DATA\n        )\n        self.pdf_service.merge_pdfs.assert_not_called()\n        self.telegram_service.send_file.assert_not_called()\n        self._assert_ask_first_pdf()\n\n    @pytest.mark.asyncio\n    async def test_check_text_cancel(self) -> None:\n        self.telegram_message.text = self.CANCEL\n        self.telegram_service.cancel_conversation.return_value = ConversationHandler.END\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.cancel_conversation.assert_called_once_with(\n            self.telegram_update, self.telegram_context\n        )\n\n    @pytest.mark.asyncio\n    async def test_check_text_unknown_text(self) -> None:\n        self.telegram_message.text = \"clearly_unknown\"\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n        assert actual == self.WAIT_MERGE_PDF\n\n    @pytest.mark.parametrize(\"text\", [REMOVE_LAST_FILE, DONE])\n    @pytest.mark.asyncio\n    async def test_check_text_telegram_service_error(self, text: str) -> None:\n        self.telegram_message.text = text\n        self.telegram_service.get_user_data.side_effect = TelegramServiceError()\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.MERGE_PDF_DATA\n        )\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    def _assert_ask_first_pdf(self) -> None:\n        self.telegram_service.update_user_data.assert_called_once_with(\n            self.telegram_context, self.MERGE_PDF_DATA, []\n        )\n        self.telegram_service.reply_with_cancel_markup.assert_called_once()\n"
  },
  {
    "path": "tests/path_test_mixin.py",
    "content": "from io import BufferedWriter\nfrom os import stat_result\nfrom pathlib import Path\nfrom unittest.mock import MagicMock\n\n\nclass PathTestMixin:\n    @staticmethod\n    def mock_file_path() -> MagicMock:\n        path = MagicMock(spec=Path)\n        path.is_dir.return_value = False\n        return path\n\n    @staticmethod\n    def mock_dir_path() -> MagicMock:\n        path = MagicMock(spec=Path)\n        path.is_dir.return_value = True\n        return path\n\n    @staticmethod\n    def mock_path_open(path: MagicMock) -> MagicMock:\n        writer = MagicMock(spec=BufferedWriter)\n        path.open.return_value.__enter__.return_value = writer\n        return writer\n\n    @staticmethod\n    def mock_path_stat(path: MagicMock) -> MagicMock:\n        stat = MagicMock(spec=stat_result)\n        path.stat.return_value = stat\n        return stat\n"
  },
  {
    "path": "tests/payment/__init__.py",
    "content": ""
  },
  {
    "path": "tests/payment/test_payment_handler.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import (\n    CallbackQueryHandler,\n    CommandHandler,\n    MessageHandler,\n    PreCheckoutQueryHandler,\n    filters,\n)\n\nfrom pdf_bot.models import SupportData\nfrom pdf_bot.payment import PaymentData, PaymentHandler, PaymentService\nfrom tests.telegram_internal import TelegramTestMixin\n\n\nclass TestLanguageHandler(TelegramTestMixin):\n    START_COMMAND = \"start\"\n    SUPPORT_COMMAND = \"support\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.payment_service = MagicMock(spec=PaymentService)\n        self.sut = PaymentHandler(self.payment_service)\n\n    @pytest.mark.asyncio\n    async def test_handlers(self) -> None:\n        actual = self.sut.handlers\n        assert len(actual) == 6\n\n        handler_0 = actual[0]\n        assert isinstance(handler_0, CommandHandler)\n        assert handler_0.commands == {self.START_COMMAND}\n        assert handler_0.filters.name == filters.Regex(\"support\").name\n\n        handler_1 = actual[1]\n        assert isinstance(handler_1, CommandHandler)\n        assert handler_1.commands == {self.SUPPORT_COMMAND}\n\n        handler_2 = actual[2]\n        assert isinstance(handler_2, CallbackQueryHandler)\n        assert handler_2.pattern == SupportData\n\n        handler_3 = actual[3]\n        assert isinstance(handler_3, CallbackQueryHandler)\n        assert handler_3.pattern == PaymentData\n\n        handler_4 = actual[4]\n        assert isinstance(handler_4, PreCheckoutQueryHandler)\n\n        handler_5 = actual[5]\n        assert isinstance(handler_5, MessageHandler)\n        assert handler_5.filters == filters.SUCCESSFUL_PAYMENT\n\n        for handler in actual:\n            await handler.callback(self.telegram_update, self.telegram_context)\n\n        assert self.payment_service.send_support_options.call_count == 3\n        self.payment_service.precheckout_check.assert_called_once()\n        self.payment_service.successful_payment.assert_called_once()\n"
  },
  {
    "path": "tests/payment/test_payment_service.py",
    "content": "import pytest\nfrom telegram import InlineKeyboardMarkup\n\nfrom pdf_bot.errors import CallbackQueryDataTypeError\nfrom pdf_bot.payment import PaymentData, PaymentService\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestPaymentService(LanguageServiceTestMixin, TelegramServiceTestMixin, TelegramTestMixin):\n    STRIPE_TOKEN = \"stripe_token\"\n    INVOICE_PAYLOAD = \"invoice_payload\"\n    PAYMENT_DATA = PaymentData(label=\"label\", emoji=\"emoji\", value=1)\n\n    PAYMENT_AMOUNTS = (1, 3, 5, 10)\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = PaymentService(self.language_service, self.telegram_service, self.STRIPE_TOKEN)\n\n    @pytest.mark.asyncio\n    async def test_send_support_options(self) -> None:\n        self.telegram_update.callback_query = None\n\n        await self.sut.send_support_options(self.telegram_update, self.telegram_context)\n\n        self.telegram_callback_query.answer.assert_not_called()\n        _args, kwargs = self.telegram_update.effective_message.reply_text.call_args\n\n        reply_markup: InlineKeyboardMarkup | None = kwargs.get(\"reply_markup\")\n        assert reply_markup is not None\n        self._assert_keyboard_payment_callback_data(reply_markup)\n\n    @pytest.mark.asyncio\n    async def test_send_support_options_with_callback_query(self) -> None:\n        self.telegram_update.callback_query = self.telegram_callback_query\n\n        await self.sut.send_support_options(self.telegram_update, self.telegram_context)\n\n        self.telegram_callback_query.answer.assert_called_once()\n        self.telegram_context.drop_callback_data.assert_not_called()\n        _args, kwargs = self.telegram_update.effective_message.reply_text.call_args\n\n        reply_markup: InlineKeyboardMarkup | None = kwargs.get(\"reply_markup\")\n        assert reply_markup is not None\n        self._assert_keyboard_payment_callback_data(reply_markup)\n\n    @pytest.mark.asyncio\n    async def test_send_invoice(self) -> None:\n        self.telegram_callback_query.data = self.PAYMENT_DATA\n        await self.sut.send_invoice(self.telegram_update, self.telegram_context)\n\n        self.telegram_service.answer_query_and_drop_data.assert_called_once_with(\n            self.telegram_context, self.telegram_callback_query\n        )\n        self.telegram_update.effective_message.reply_invoice.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_send_invoice_invalid_callback_query_data(self) -> None:\n        self.telegram_callback_query.data = None\n        with pytest.raises(CallbackQueryDataTypeError):\n            await self.sut.send_invoice(self.telegram_update, self.telegram_context)\n        self.telegram_update.effective_message.reply_invoice.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_precheckout_check(self) -> None:\n        self.telegram_pre_checkout_query.invoice_payload = self.INVOICE_PAYLOAD\n        await self.sut.precheckout_check(self.telegram_update, self.telegram_context)\n        self.telegram_pre_checkout_query.answer.assert_called_once_with(ok=True)\n\n    @pytest.mark.asyncio\n    async def test_precheckout_check_invalid_payload(self) -> None:\n        self.telegram_pre_checkout_query.invoice_payload = \"clearly_invalid_payload\"\n        await self.sut.precheckout_check(self.telegram_update, self.telegram_context)\n        self.telegram_pre_checkout_query.answer.assert_called_once_with(\n            ok=False, error_message=\"Something went wrong, try again\"\n        )\n\n    @pytest.mark.asyncio\n    async def test_successful_payment(self) -> None:\n        await self.sut.successful_payment(self.telegram_update, self.telegram_context)\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    def _assert_keyboard_payment_callback_data(self, reply_markup: InlineKeyboardMarkup) -> None:\n        index = 0\n        for keyboard_list in reply_markup.inline_keyboard:\n            for keyboard in keyboard_list:\n                data = keyboard.callback_data\n                assert isinstance(data, PaymentData)\n                assert data.value == self.PAYMENT_AMOUNTS[index]\n                index += 1\n            if index >= len(self.PAYMENT_AMOUNTS):\n                break\n\n        # Ensure that we've checked all payment amounts\n        assert index == len(self.PAYMENT_AMOUNTS)\n"
  },
  {
    "path": "tests/pdf/__init__.py",
    "content": ""
  },
  {
    "path": "tests/pdf/test_compress_result.py",
    "content": "from unittest.mock import patch\n\nfrom pdf_bot.pdf import CompressResult\nfrom tests.path_test_mixin import PathTestMixin\n\n\nclass TestCompressResult(PathTestMixin):\n    def setup_method(self) -> None:\n        path = self.mock_file_path()\n        self.sut = CompressResult(29, 10, path)\n\n    def test_reduced_percentage(self) -> None:\n        actual = self.sut.reduced_percentage\n        assert actual == 1 - self.sut.new_size / self.sut.old_size\n\n    def test_readable_old_size(self) -> None:\n        with patch(\"pdf_bot.pdf.models.humanize\") as humanize:\n            _ = self.sut.readable_old_size\n            humanize.naturalsize.assert_called_once_with(self.sut.old_size)\n\n    def test_readable_new_size(self) -> None:\n        with patch(\"pdf_bot.pdf.models.humanize\") as humanize:\n            _ = self.sut.readable_new_size\n            humanize.naturalsize.assert_called_once_with(self.sut.new_size)\n"
  },
  {
    "path": "tests/pdf/test_pdf_service.py",
    "content": "from typing import Any\nfrom unittest.mock import MagicMock, call, patch\n\nimport pytest\nfrom img2pdf import Rotation\nfrom ocrmypdf.exceptions import EncryptedPdfError, PriorOcrFoundError, TaggedPDFError\nfrom pdfminer.pdfdocument import PDFPasswordIncorrect\nfrom pypdf import PageObject, PdfReader, PdfWriter\nfrom pypdf.errors import PdfReadError as PyPdfReadError\nfrom pypdf.pagerange import PageRange\nfrom weasyprint import CSS, HTML\nfrom weasyprint.text.fonts import FontConfiguration\n\nfrom pdf_bot.cli import CLIService, CLIServiceError\nfrom pdf_bot.io_internal.io_service import IOService\nfrom pdf_bot.models import FileData\nfrom pdf_bot.pdf import (\n    CompressResult,\n    FontData,\n    PdfDecryptError,\n    PdfReadError,\n    PdfService,\n    ScaleByData,\n    ScaleToData,\n)\nfrom pdf_bot.pdf.exceptions import (\n    PdfEncryptedError,\n    PdfIncorrectPasswordError,\n    PdfNoImagesError,\n    PdfNoTextError,\n    PdfServiceError,\n)\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestPDFService(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    PASSWORD = \"password\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.cli_service = MagicMock(spec=CLIService)\n        self.telegram_service = self.mock_telegram_service()\n\n        self.io_service = MagicMock(spec=IOService)\n        self.io_service.create_temp_directory.return_value.__enter__.return_value = self.dir_path\n        self.io_service.create_temp_pdf_file.return_value.__enter__.return_value = self.file_path\n        self.io_service.create_temp_png_file.return_value.__enter__.return_value = self.file_path\n        self.io_service.create_temp_txt_file.return_value.__enter__.return_value = self.file_path\n\n        self.sut = PdfService(\n            self.cli_service,\n            self.io_service,\n            self.telegram_service,\n        )\n\n        self.ocrmypdf_patcher = patch(\"pdf_bot.pdf.pdf_service.ocrmypdf\")\n        self.extract_text_patcher = patch(\"pdf_bot.pdf.pdf_service.extract_text\")\n        self.textwrap_patcher = patch(\"pdf_bot.pdf.pdf_service.textwrap\")\n        self.pdf_reader_patcher = patch(\"pdf_bot.pdf.pdf_service.PdfReader\")\n        self.pdf_writer_patcher = patch(\"pdf_bot.pdf.pdf_service.PdfWriter\")\n\n        self.ocrmypdf = self.ocrmypdf_patcher.start()\n        self.extract_text = self.extract_text_patcher.start()\n        self.textwrap_patcher.start()\n        self.pdf_reader_cls = self.pdf_reader_patcher.start()\n        self.pdf_writer_cls = self.pdf_writer_patcher.start()\n\n    def teardown_method(self) -> None:\n        self.ocrmypdf_patcher.stop()\n        self.extract_text_patcher.stop()\n        self.textwrap_patcher.stop()\n        self.pdf_reader_patcher.stop()\n        self.pdf_writer_patcher.stop()\n        super().teardown_method()\n\n    @pytest.mark.asyncio\n    async def test_add_watermark_to_pdf(self) -> None:\n        src_file_id = \"src_file_id\"\n        wmk_file_id = \"wmk_file_id\"\n\n        src_reader = MagicMock(spec=PdfReader)\n        wmk_reader = MagicMock(spec=PdfReader)\n        writer = MagicMock(spec=PdfWriter)\n        src_reader.is_encrypted = wmk_reader.is_encrypted = False\n\n        src_pages = [MagicMock(spec=PageObject) for _ in range(2)]\n        src_reader.pages = src_pages\n\n        wmk_page = MagicMock(spec=PageObject)\n        wmk_reader.pages = [wmk_page]\n\n        def pdf_file_reader_side_effect(file_id: str, *_args: Any, **_kwargs: Any) -> PdfReader:\n            if file_id == src_file_id:\n                return src_reader\n            return wmk_reader\n\n        self.telegram_service.download_pdf_file.side_effect = (\n            self._async_context_manager_side_effect_echo\n        )\n        self.pdf_reader_cls.side_effect = pdf_file_reader_side_effect\n        self.pdf_writer_cls.return_value = writer\n\n        async with self.sut.add_watermark_to_pdf(src_file_id, wmk_file_id):\n            assert self.telegram_service.download_pdf_file.call_count == 2\n            download_calls = [call(src_file_id), call(wmk_file_id)]\n            self.telegram_service.download_pdf_file.assert_has_calls(download_calls)\n\n            add_page_calls = []\n            for src_page in src_pages:\n                src_page.merge_page.assert_called_once_with(wmk_page)\n                add_page_calls.append(call(src_page))\n\n            writer.add_page.assert_has_calls(add_page_calls)\n            writer.write.assert_called_once()\n            self.io_service.create_temp_pdf_file.assert_called_once_with(\"File_with_watermark\")\n\n    @pytest.mark.asyncio\n    async def test_add_watermark_to_pdf_read_error(self) -> None:\n        self.pdf_reader_cls.side_effect = PyPdfReadError()\n        with pytest.raises(PdfReadError):\n            async with self.sut.add_watermark_to_pdf(self.TELEGRAM_FILE_ID, self.TELEGRAM_FILE_ID):\n                pass\n\n        calls = [call(self.TELEGRAM_FILE_ID) for _ in range(2)]\n        self.telegram_service.download_pdf_file.assert_has_calls(calls, any_order=True)\n\n    @pytest.mark.asyncio\n    async def test_grayscale_pdf(self) -> None:\n        image_paths = \"image_paths\"\n        image_bytes = \"image_bytes\"\n        buffered_writer = self.mock_path_open(self.file_path)\n\n        with (\n            patch(\"pdf_bot.pdf.pdf_service.pdf2image\") as pdf2image,\n            patch(\"pdf_bot.pdf.pdf_service.img2pdf\") as img2pdf,\n        ):\n            pdf2image.convert_from_path.return_value = image_paths\n            img2pdf.convert.return_value = image_bytes\n\n            async with self.sut.grayscale_pdf(self.TELEGRAM_FILE_ID) as actual:\n                assert actual == self.file_path\n                self._assert_telegram_and_io_services(\"Grayscale\")\n                self.io_service.create_temp_directory.assert_called_once()\n                pdf2image.convert_from_path.assert_called_once_with(\n                    self.download_path,\n                    output_folder=self.dir_path,\n                    fmt=\"png\",\n                    grayscale=True,\n                    paths_only=True,\n                )\n                img2pdf.convert.assert_called_once_with(image_paths, rotation=Rotation.ifvalid)\n                self.file_path.open.assert_called_once_with(\"wb\")\n                buffered_writer.write.assert_called_once_with(image_bytes)\n\n    @pytest.mark.asyncio\n    async def test_compare_pdfs(self) -> None:\n        file_ids = [\"a\", \"b\"]\n        with patch(\"pdf_bot.pdf.pdf_service.pdf_diff\") as pdf_diff:\n            async with self.sut.compare_pdfs(*file_ids) as actual:\n                assert actual == self.file_path\n                calls = [call(x) for x in file_ids]\n                self.telegram_service.download_pdf_file.assert_has_calls(calls, any_order=True)\n                pdf_diff.main.assert_called_once_with(\n                    files=[self.download_path, self.download_path],\n                    out_file=self.file_path,\n                )\n\n    @pytest.mark.asyncio\n    async def test_compress_pdf(self) -> None:\n        old_size = 20\n        new_size = 10\n\n        download_stat = self.mock_path_stat(self.download_path)\n        download_stat.st_size = old_size\n\n        file_stat = self.mock_path_stat(self.file_path)\n        file_stat.st_size = new_size\n\n        async with self.sut.compress_pdf(self.TELEGRAM_FILE_ID) as compress_result:\n            assert compress_result == CompressResult(old_size, new_size, self.file_path)\n            self.cli_service.compress_pdf.assert_called_once_with(\n                self.download_path, self.file_path\n            )\n            self._assert_telegram_and_io_services(\"Compressed\")\n\n    @pytest.mark.asyncio\n    async def test_convert_to_images(self) -> None:\n        with patch(\"pdf_bot.pdf.pdf_service.pdf2image\") as pdf2image:\n            async with self.sut.convert_pdf_to_images(self.TELEGRAM_FILE_ID) as actual:\n                assert actual == self.dir_path\n                self.telegram_service.download_pdf_file.assert_called_once_with(\n                    self.TELEGRAM_FILE_ID\n                )\n                self.io_service.create_temp_directory.assert_called_once_with(\"PDF_images\")\n                pdf2image.convert_from_path.assert_called_once_with(\n                    self.download_path, output_folder=self.dir_path, fmt=\"png\"\n                )\n\n    @pytest.mark.parametrize(\"has_font_data\", [True, False])\n    @pytest.mark.asyncio\n    async def test_create_pdf_from_text(self, has_font_data: bool) -> None:\n        font_data = stylesheets = None\n        html = MagicMock(spec=HTML)\n        css = MagicMock(spec=CSS)\n        font_config = MagicMock(spec=FontConfiguration)\n\n        if has_font_data:\n            font_data = FontData(\"family\", \"url\")\n            stylesheets = [css]\n\n        with (\n            patch(\"pdf_bot.pdf.pdf_service.HTML\") as html_cls,\n            patch(\"pdf_bot.pdf.pdf_service.CSS\") as css_cls,\n            patch(\"pdf_bot.pdf.pdf_service.FontConfiguration\") as font_config_cls,\n        ):\n            html_cls.return_value = html\n            css_cls.return_value = css\n            font_config_cls.return_value = font_config\n\n            async with self.sut.create_pdf_from_text(self.TELEGRAM_TEXT, font_data) as actual:\n                assert actual == self.file_path\n                html.write_pdf.assert_called_once()\n                self.io_service.create_temp_pdf_file.assert_called_once_with(\"Text\")\n                html.write_pdf.assert_called_once_with(\n                    self.file_path, stylesheets=stylesheets, font_config=font_config\n                )\n\n                if font_data is not None:\n                    css_cls.assert_called_once_with(\n                        string=(\n                            \"@font-face {\"\n                            f\"font-family: {font_data.font_family};\"\n                            f\"src: url({font_data.font_url});\"\n                            \"}\"\n                            \"p {\"\n                            f\"font-family: {font_data.font_family};\"\n                            \"}\"\n                        ),\n                        font_config=font_config,\n                    )\n                else:\n                    css_cls.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_crop_pdf_by_percentage(self) -> None:\n        percent = 0.1\n\n        with patch(\"pdf_bot.pdf.pdf_service.crop\") as crop:\n            async with self.sut.crop_pdf_by_percentage(self.TELEGRAM_FILE_ID, percent) as actual:\n                assert actual == self.file_path\n                crop.assert_called_once_with(\n                    [\"-p\", str(percent), \"-o\", str(self.file_path), str(self.download_path)]\n                )\n                self._assert_telegram_and_io_services(\"Cropped\")\n\n    @pytest.mark.asyncio\n    async def test_crop_pdf_by_margin_size(self) -> None:\n        margin_size = 10\n\n        with patch(\"pdf_bot.pdf.pdf_service.crop\") as crop:\n            async with self.sut.crop_pdf_by_margin_size(\n                self.TELEGRAM_FILE_ID, margin_size\n            ) as actual:\n                assert actual == self.file_path\n                crop.assert_called_once_with(\n                    [\"-a\", str(margin_size), \"-o\", str(self.file_path), str(self.download_path)]\n                )\n                self._assert_telegram_and_io_services(\"Cropped\")\n\n    @pytest.mark.parametrize(\"num_pages\", [0, 1, 2, 5])\n    @pytest.mark.asyncio\n    async def test_decrypt_pdf(self, num_pages: int) -> None:\n        reader = MagicMock(spec=PdfReader)\n        writer = MagicMock(spec=PdfWriter)\n        reader.is_encrypted = True\n\n        pages = [MagicMock() for _ in range(num_pages)]\n        reader.pages = pages\n\n        self.pdf_reader_cls.return_value = reader\n        self.pdf_writer_cls.return_value = writer\n\n        async with self.sut.decrypt_pdf(self.TELEGRAM_FILE_ID, self.PASSWORD) as actual:\n            assert actual == self.file_path\n            self._assert_telegram_and_io_services(\"Decrypted\")\n            reader.decrypt.assert_called_once_with(self.PASSWORD)\n\n            calls = [call(page) for page in pages]\n            writer.add_page.assert_has_calls(calls)\n\n    @pytest.mark.asyncio\n    async def test_decrypt_pdf_not_encrypted(self) -> None:\n        reader = MagicMock(spec=PdfReader)\n        reader.is_encrypted = False\n        self.pdf_reader_cls.return_value = reader\n\n        with pytest.raises(PdfDecryptError):\n            async with self.sut.decrypt_pdf(self.TELEGRAM_FILE_ID, self.PASSWORD):\n                pass\n\n        self.telegram_service.download_pdf_file.assert_called_once_with(self.TELEGRAM_FILE_ID)\n        reader.decrypt.assert_not_called()\n        self.io_service.create_temp_pdf_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_decrypt_pdf_incorrect_password(self) -> None:\n        reader = MagicMock(spec=PdfReader)\n        reader.is_encrypted = True\n        reader.decrypt.return_value = 0\n        self.pdf_reader_cls.return_value = reader\n\n        with pytest.raises(PdfIncorrectPasswordError):\n            async with self.sut.decrypt_pdf(self.TELEGRAM_FILE_ID, self.PASSWORD):\n                pass\n        self._assert_decrypt_failure(reader)\n\n    @pytest.mark.asyncio\n    async def test_decrypt_pdf_invalid_encryption_method(self) -> None:\n        reader = MagicMock(spec=PdfReader)\n        reader.is_encrypted = True\n        reader.decrypt.side_effect = NotImplementedError()\n        self.pdf_reader_cls.return_value = reader\n\n        with pytest.raises(PdfDecryptError):\n            async with self.sut.decrypt_pdf(self.TELEGRAM_FILE_ID, self.PASSWORD):\n                pass\n        self._assert_decrypt_failure(reader)\n\n    @pytest.mark.parametrize(\"num_pages\", [0, 1, 2, 5])\n    @pytest.mark.asyncio\n    async def test_encrypt_pdf(self, num_pages: int) -> None:\n        reader = MagicMock(spec=PdfReader)\n        writer = MagicMock(spec=PdfWriter)\n        reader.is_encrypted = False\n\n        pages = [MagicMock() for _ in range(num_pages)]\n        reader.pages = pages\n\n        self.pdf_reader_cls.return_value = reader\n        self.pdf_writer_cls.return_value = writer\n\n        async with self.sut.encrypt_pdf(self.TELEGRAM_FILE_ID, self.PASSWORD) as actual:\n            assert actual == self.file_path\n            self._assert_telegram_and_io_services(\"Encrypted\")\n            writer.encrypt.assert_called_once_with(self.PASSWORD)\n\n            calls = [call(page) for page in pages]\n            writer.add_page.assert_has_calls(calls)\n\n    @pytest.mark.asyncio\n    async def test_encrypt_pdf_already_encrypted(self) -> None:\n        reader = MagicMock(spec=PdfReader)\n        reader.is_encrypted = True\n        self.pdf_reader_cls.return_value = reader\n\n        with pytest.raises(PdfEncryptedError):\n            async with self.sut.encrypt_pdf(self.TELEGRAM_FILE_ID, self.PASSWORD):\n                pass\n\n        self.telegram_service.download_pdf_file.assert_called_once_with(self.TELEGRAM_FILE_ID)\n        self.io_service.create_temp_pdf_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_extract_pdf_text(self) -> None:\n        async with self.sut.extract_pdf_text(self.TELEGRAM_FILE_ID) as actual:\n            assert actual == self.file_path\n            self.telegram_service.download_pdf_file.assert_called_once_with(self.TELEGRAM_FILE_ID)\n            self.io_service.create_temp_txt_file.assert_called_once_with(\"PDF_text\")\n            self.extract_text.assert_called_once_with(self.download_path)\n\n    @pytest.mark.asyncio\n    async def test_extract_pdf_text_error(self) -> None:\n        self.extract_text.side_effect = PDFPasswordIncorrect\n\n        with pytest.raises(PdfEncryptedError):\n            async with self.sut.extract_pdf_text(self.TELEGRAM_FILE_ID):\n                pass\n\n        self.telegram_service.download_pdf_file.assert_called_once_with(self.TELEGRAM_FILE_ID)\n        self.io_service.create_temp_txt_file.assert_not_called()\n        self.extract_text.assert_called_once_with(self.download_path)\n\n    @pytest.mark.asyncio\n    async def test_extract_pdf_text_no_text(self) -> None:\n        self.extract_text.return_value = \"\"\n\n        with pytest.raises(PdfNoTextError):\n            async with self.sut.extract_pdf_text(self.TELEGRAM_FILE_ID):\n                pass\n\n        self.telegram_service.download_pdf_file.assert_called_once_with(self.TELEGRAM_FILE_ID)\n        self.io_service.create_temp_txt_file.assert_not_called()\n        self.extract_text.assert_called_once_with(self.download_path)\n\n    @pytest.mark.asyncio\n    async def test_extract_pdf_images(self) -> None:\n        self.dir_path.iterdir.return_value = [self.file_path]\n\n        async with self.sut.extract_pdf_images(self.TELEGRAM_FILE_ID) as actual:\n            assert actual == self.dir_path\n\n        self.telegram_service.download_pdf_file.assert_called_once_with(self.TELEGRAM_FILE_ID)\n        self.io_service.create_temp_directory.assert_called_once_with(\"PDF_images\")\n        self.cli_service.extract_pdf_images.assert_called_once_with(\n            self.download_path, self.dir_path\n        )\n        self.dir_path.iterdir.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_extract_pdf_images_no_images(self) -> None:\n        self.dir_path.iterdir.return_value = []\n\n        with pytest.raises(PdfNoImagesError):\n            async with self.sut.extract_pdf_images(self.TELEGRAM_FILE_ID):\n                pass\n\n        self.telegram_service.download_pdf_file.assert_called_once_with(self.TELEGRAM_FILE_ID)\n        self.io_service.create_temp_directory.assert_called_once_with(\"PDF_images\")\n        self.cli_service.extract_pdf_images.assert_called_once_with(\n            self.download_path, self.dir_path\n        )\n        self.dir_path.iterdir.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_extract_pdf_images_cli_error(self) -> None:\n        self.cli_service.extract_pdf_images.side_effect = CLIServiceError()\n\n        with pytest.raises(PdfServiceError):\n            async with self.sut.extract_pdf_images(self.TELEGRAM_FILE_ID):\n                pass\n\n        self.telegram_service.download_pdf_file.assert_called_once_with(self.TELEGRAM_FILE_ID)\n        self.io_service.create_temp_directory.assert_called_once_with(\"PDF_images\")\n        self.cli_service.extract_pdf_images.assert_called_once_with(\n            self.download_path, self.dir_path\n        )\n        self.dir_path.iterdir.assert_not_called()\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\"num_files\", [0, 1, 2, 5])\n    async def test_merge_pdfs(self, num_files: int) -> None:\n        file_data_list, file_ids, file_paths = self._get_file_data_list(num_files)\n        writer = MagicMock(spec=PdfWriter)\n        self.pdf_writer_cls.return_value = writer\n        self.telegram_service.download_files.return_value.__aenter__.return_value = file_paths\n\n        async with self.sut.merge_pdfs(file_data_list):\n            self.telegram_service.download_files.assert_called_once_with(file_ids)\n            calls = [call(x) for x in file_paths]\n            writer.append.assert_has_calls(calls)\n            self.io_service.create_temp_pdf_file.assert_called_once_with(\"Merged\")\n            writer.write.assert_called_once()\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\"exception\", [PyPdfReadError(), ValueError()])\n    async def test_merge_pdfs_read_error(self, exception: Exception) -> None:\n        file_data_list, file_ids, file_paths = self._get_file_data_list(2)\n        writer = MagicMock(spec=PdfWriter)\n        writer.append.side_effect = exception\n        self.pdf_writer_cls.return_value = writer\n        self.telegram_service.download_files.return_value.__aenter__.return_value = file_paths\n\n        with pytest.raises(PdfReadError):\n            async with self.sut.merge_pdfs(file_data_list):\n                pass\n\n        self.telegram_service.download_files.assert_called_once_with(file_ids)\n        self.io_service.create_temp_pdf_file.assert_not_called()\n        writer.write.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_ocr_pdf(self) -> None:\n        async with self.sut.ocr_pdf(self.TELEGRAM_FILE_ID) as actual:\n            assert actual == self.file_path\n            self._assert_telegram_and_io_services(\"OCR\")\n            self.ocrmypdf.ocr.assert_called_once_with(\n                self.download_path, self.file_path, progress_bar=False\n            )\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\n        (\"error\", \"expected\"),\n        [\n            (PriorOcrFoundError, PdfServiceError),\n            (TaggedPDFError, PdfServiceError),\n            (EncryptedPdfError, PdfEncryptedError),\n        ],\n    )\n    async def test_ocr_pdf_error(self, error: type[Exception], expected: type[Exception]) -> None:\n        self.ocrmypdf.ocr.side_effect = error\n\n        with pytest.raises(expected):\n            async with self.sut.ocr_pdf(self.TELEGRAM_FILE_ID):\n                pass\n\n        self._assert_telegram_and_io_services(\"OCR\")\n        self.ocrmypdf.ocr.assert_called_once_with(\n            self.download_path, self.file_path, progress_bar=False\n        )\n\n    @pytest.mark.asyncio\n    async def test_preview_pdf(self) -> None:\n        pdf_path = \"pdf_path\"\n        out_path = \"out_path\"\n\n        reader = MagicMock(spec=PdfReader)\n        writer = MagicMock(spec=PdfWriter)\n        page = MagicMock(spec=PageObject)\n        reader.is_encrypted = False\n        reader.pages = [page]\n\n        self.pdf_reader_cls.return_value = reader\n        self.pdf_writer_cls.return_value = writer\n\n        image = MagicMock()\n\n        self.io_service.create_temp_pdf_file.return_value.__enter__.return_value = pdf_path\n        self.io_service.create_temp_png_file.return_value.__enter__.return_value = out_path\n\n        with patch(\"pdf_bot.pdf.pdf_service.pdf2image\") as pdf2image:\n            pdf2image.convert_from_path.return_value = [image]\n\n            async with self.sut.preview_pdf(self.TELEGRAM_FILE_ID) as actual:\n                assert actual == out_path\n                self.telegram_service.download_pdf_file.assert_called_once_with(\n                    self.TELEGRAM_FILE_ID\n                )\n                writer.add_page.assert_called_once_with(page)\n                pdf2image.convert_from_path.assert_called_once_with(pdf_path, fmt=\"png\")\n                image.save.assert_called_once_with(out_path)\n\n    @pytest.mark.asyncio\n    async def test_rename_pdf(self) -> None:\n        file_name = \"file_name\"\n        with patch(\"pdf_bot.pdf.pdf_service.shutil\") as shutil:\n            expected = self.dir_path / file_name\n            async with self.sut.rename_pdf(self.TELEGRAM_FILE_ID, file_name) as actual:\n                assert actual == expected\n                self.telegram_service.download_pdf_file.assert_called_once_with(\n                    self.TELEGRAM_FILE_ID\n                )\n                self.io_service.create_temp_directory.assert_called_once()\n                shutil.copy.assert_called_once_with(self.download_path, expected)\n\n    @pytest.mark.parametrize(\"num_pages\", [0, 1, 2, 5])\n    @pytest.mark.asyncio\n    async def test_rotate_pdf(self, num_pages: int) -> None:\n        degree = 90\n        reader = MagicMock(spec=PdfReader)\n        writer = MagicMock(spec=PdfWriter)\n        reader.is_encrypted = False\n\n        pages = [MagicMock(spec=PageObject) for _ in range(num_pages)]\n        rotated_pages = [MagicMock() for _ in pages]\n        for i, page in enumerate(pages):\n            page.rotate.return_value = rotated_pages[i]\n        reader.pages = pages\n\n        self.pdf_reader_cls.return_value = reader\n        self.pdf_writer_cls.return_value = writer\n\n        async with self.sut.rotate_pdf(self.TELEGRAM_FILE_ID, degree) as actual:\n            assert actual == self.file_path\n            self._assert_telegram_and_io_services(\"Rotated\")\n\n            for page in pages:\n                page.rotate.assert_called_once_with(degree)\n\n            calls = [call(page) for page in rotated_pages]\n            writer.add_page.assert_has_calls(calls)\n\n    @pytest.mark.parametrize(\"num_pages\", [0, 1, 2, 5])\n    @pytest.mark.asyncio\n    async def test_scale_pdf_by_factor(self, num_pages: int) -> None:\n        scale_data = ScaleByData(1, 2)\n\n        reader = MagicMock(spec=PdfReader)\n        writer = MagicMock(spec=PdfWriter)\n        reader.is_encrypted = False\n\n        pages = [MagicMock() for _ in range(num_pages)]\n        reader.pages = pages\n\n        self.pdf_reader_cls.return_value = reader\n        self.pdf_writer_cls.return_value = writer\n\n        async with self.sut.scale_pdf_by_factor(self.TELEGRAM_FILE_ID, scale_data) as actual:\n            assert actual == self.file_path\n            self._assert_telegram_and_io_services(\"Scaled\")\n\n            calls = []\n            for page in pages:\n                page.scale.assert_called_once_with(scale_data.x, scale_data.y)\n                calls.append(call(page))\n            writer.add_page.assert_has_calls(calls)\n\n    @pytest.mark.parametrize(\"num_pages\", [0, 1, 2, 5])\n    @pytest.mark.asyncio\n    async def test_scale_pdf_to_dimension(self, num_pages: int) -> None:\n        scale_data = ScaleToData(1, 2)\n\n        reader = MagicMock(spec=PdfReader)\n        writer = MagicMock(spec=PdfWriter)\n        reader.is_encrypted = False\n\n        pages = [MagicMock() for _ in range(num_pages)]\n        reader.pages = pages\n\n        self.pdf_reader_cls.return_value = reader\n        self.pdf_writer_cls.return_value = writer\n\n        async with self.sut.scale_pdf_to_dimension(self.TELEGRAM_FILE_ID, scale_data) as actual:\n            assert actual == self.file_path\n            self._assert_telegram_and_io_services(\"Scaled\")\n\n            calls = []\n            for page in pages:\n                page.scale_to.assert_called_once_with(scale_data.x, scale_data.y)\n                calls.append(call(page))\n            writer.add_page.assert_has_calls(calls)\n\n    @pytest.mark.parametrize(\n        \"split_range\",\n        [\n            \":\",\n            \"7\",\n            \"0:3\",\n            \"7:\",\n            \"-1\",\n            \":-1\",\n            \"-2\",\n            \"-2:\",\n            \"-3:-1\",\n            \"::2\",\n            \"1:10:2\",\n            \"::-1\",\n            \"3:0:-1\",\n            \"2:-1\",\n        ],\n    )\n    @pytest.mark.asyncio\n    async def test_split_range_valid(self, split_range: str) -> None:\n        assert self.sut.split_range_valid(split_range) is True\n\n    @pytest.mark.asyncio\n    async def test_split_range_invalid(self) -> None:\n        assert self.sut.split_range_valid(\"clearly_invalid\") is False\n\n    @pytest.mark.asyncio\n    async def test_split_pdf(self) -> None:\n        split_range = \"7:\"\n        reader = MagicMock(spec=PdfReader)\n        writer = MagicMock(spec=PdfWriter)\n        reader.is_encrypted = False\n\n        self.pdf_reader_cls.return_value = reader\n        self.pdf_writer_cls.return_value = writer\n\n        async with self.sut.split_pdf(self.TELEGRAM_FILE_ID, split_range) as actual:\n            assert actual == self.file_path\n            self._assert_telegram_and_io_services(\"Split\")\n            writer.append.assert_called_once_with(reader, pages=PageRange(split_range))\n\n    @staticmethod\n    def _async_context_manager_side_effect_echo(\n        return_value: str, *_args: Any, **_kwargs: Any\n    ) -> MagicMock:\n        mock = MagicMock()\n        mock.__aenter__.return_value = return_value\n        return mock\n\n    @staticmethod\n    def _method_side_effect_echo(return_value: str, *_args: Any, **_kwargs: Any) -> str:\n        return return_value\n\n    @staticmethod\n    def _get_file_data_list(\n        num_files: int,\n    ) -> tuple[list[FileData], list[str], list[str]]:\n        file_data_list = []\n        file_ids = []\n        file_paths = []\n\n        for i in range(num_files):\n            file_data = FileData(f\"id_{i}\", f\"name_{i}\")\n            file_data_list.append(file_data)\n            file_ids.append(file_data.id)\n            file_paths.append(f\"path_{i}\")\n\n        return file_data_list, file_ids, file_paths\n\n    def _assert_telegram_and_io_services(self, temp_pdf_file_prefix: str) -> None:\n        self.telegram_service.download_pdf_file.assert_called_once_with(self.TELEGRAM_FILE_ID)\n        self.io_service.create_temp_pdf_file.assert_called_once_with(temp_pdf_file_prefix)\n\n    def _assert_decrypt_failure(self, reader: MagicMock) -> None:\n        self.telegram_service.download_pdf_file.assert_called_once_with(self.TELEGRAM_FILE_ID)\n        reader.decrypt.assert_called_once_with(self.PASSWORD)\n        self.io_service.create_temp_pdf_file.assert_not_called()\n"
  },
  {
    "path": "tests/pdf_processor/__init__.py",
    "content": ""
  },
  {
    "path": "tests/pdf_processor/test_abstract_pdf_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom unittest.mock import MagicMock, patch\n\nimport pytest\nfrom telegram.ext import BaseHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.file_processor.errors import DuplicateClassError\nfrom pdf_bot.models import FileData, FileTaskResult, TaskData\nfrom pdf_bot.pdf import PdfService, PdfServiceError\nfrom pdf_bot.pdf_processor import AbstractPdfProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin\n\n\nclass MockProcessor(AbstractPdfProcessor):\n    @property\n    def task_type(self) -> TaskType:\n        return MagicMock(spec=TaskType)\n\n    @property\n    def task_data(self) -> TaskData:\n        return MagicMock(spec=TaskData)\n\n    @property\n    def handler(self) -> BaseHandler:\n        return MagicMock(spec=BaseHandler)\n\n    @asynccontextmanager\n    async def process_file_task(self, _file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        yield MagicMock(spec=FileTaskResult)\n\n\nclass TestAbstractPdfProcessor(LanguageServiceTestMixin, TelegramServiceTestMixin):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.pdf_processors_patcher = patch(\n            \"pdf_bot.pdf_processor.abstract_pdf_processor.AbstractPdfProcessor._PDF_PROCESSORS\"\n        )\n        self.file_processor_patcher = patch(\n            \"pdf_bot.pdf_processor.abstract_pdf_processor.AbstractFileProcessor.__init__\"\n        )\n\n        self.pdf_processors = self.pdf_processors_patcher.start()\n        self.file_processor_patcher.start()\n\n    def teardown_method(self) -> None:\n        self.pdf_processors_patcher.stop()\n        self.file_processor_patcher.stop()\n        super().teardown_method()\n\n    def test_init(self) -> None:\n        processors: dict = {}\n        self.pdf_processors.__contains__.side_effect = processors.__contains__\n\n        proc = MockProcessor(self.pdf_service, self.telegram_service, self.language_service)\n\n        self.pdf_processors.__setitem__.assert_called_once_with(proc.__class__.__name__, proc)\n\n    def test_init_already_initialized(self) -> None:\n        processors: dict = {MockProcessor.__name__: MagicMock()}\n        self.pdf_processors.__contains__.side_effect = processors.__contains__\n\n        with pytest.raises(DuplicateClassError):\n            MockProcessor(self.pdf_service, self.telegram_service, self.language_service)\n\n        self.pdf_processors.__setitem__.assert_not_called()\n\n    def test_get_task_data_list(self) -> None:\n        task_data = MagicMock(spec=TaskData)\n        processor = MagicMock(spec=AbstractPdfProcessor)\n        processor.task_data = task_data\n        self.pdf_processors.values.return_value = [processor]\n\n        actual = AbstractPdfProcessor.get_task_data_list()\n\n        assert actual == [task_data]\n\n    def test_generic_error_types(self) -> None:\n        processor = MockProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n        assert processor.generic_error_types == {PdfServiceError}\n"
  },
  {
    "path": "tests/pdf_processor/test_abstract_pdf_select_and_text_processor.py",
    "content": "from collections.abc import AsyncGenerator\nfrom contextlib import asynccontextmanager\nfrom unittest.mock import ANY, MagicMock, patch\n\nimport pytest\nfrom telegram.ext import CallbackQueryHandler, CommandHandler, ConversationHandler, MessageHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import CallbackQueryDataTypeError, FileDataTypeError\nfrom pdf_bot.file_processor import AbstractFileTaskProcessor\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.models import BackData, FileData, FileTaskResult, TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import (\n    AbstractPdfSelectAndTextProcessor,\n    OptionAndInputData,\n    SelectOption,\n    SelectOptionData,\n)\nfrom pdf_bot.telegram_internal import TelegramService\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.path_test_mixin import PathTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass OptionType(SelectOption):\n    a = 0\n    b = 1\n\n    @property\n    def ask_value_text(self) -> str:\n        return f\"ask_value_text_{self.value}\"\n\n\nclass MockProcessor(PathTestMixin, AbstractPdfSelectAndTextProcessor):\n    CLEANED_TEXT = \"cleaned_text\"\n\n    def __init__(\n        self,\n        pdf_service: PdfService,\n        telegram_service: TelegramService,\n        language_service: LanguageService,\n        bypass_init_check: bool = False,\n    ) -> None:\n        super().__init__(pdf_service, telegram_service, language_service, bypass_init_check)\n        path = self.mock_file_path()\n        self.file_task_result = FileTaskResult(path)\n\n    @property\n    def entry_point_data_type(self) -> type[FileData]:\n        return FileData\n\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.decrypt_pdf\n\n    @property\n    def task_data(self) -> TaskData:\n        return MagicMock(spec=TaskData)\n\n    @property\n    def ask_select_option_text(self) -> str:\n        return \"ask_select_option_text\"\n\n    @property\n    def select_option_type(self) -> type[OptionType]:\n        return OptionType\n\n    @property\n    def invalid_text_input_error(self) -> str:\n        return \"invalid_text_input_error\"\n\n    def get_cleaned_text_input(self, _text: str) -> str | None:\n        return self.CLEANED_TEXT\n\n    @asynccontextmanager\n    async def process_file_task(self, _file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        yield self.file_task_result\n\n\nclass TestAbstractPdfTextInputProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    WAIT_SELECT_OPTION = \"wait_select_option\"\n    WAIT_TEXT_INPUT = \"wait_text_input\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n\n        self.select_option_data = SelectOptionData(\n            id=self.TELEGRAM_DOCUMENT_ID,\n            name=self.TELEGRAM_DOCUMENT_NAME,\n            option=OptionType.a,\n        )\n\n        self.option_input_data = OptionAndInputData(\n            id=self.TELEGRAM_DOCUMENT_ID,\n            name=self.TELEGRAM_DOCUMENT_NAME,\n            option=OptionType.a,\n            text=MockProcessor.CLEANED_TEXT,\n        )\n\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = MockProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_handler(self) -> None:\n        actual = self.sut.handler\n        assert isinstance(actual, ConversationHandler)\n\n        entry_points = actual.entry_points\n        assert len(entry_points) == 1\n        assert isinstance(entry_points[0], CallbackQueryHandler)\n        assert entry_points[0].pattern == self.sut.entry_point_data_type\n\n        assert self.WAIT_SELECT_OPTION in actual.states\n        wait_select_option = actual.states[self.WAIT_SELECT_OPTION]\n        assert len(wait_select_option) == 2\n\n        assert isinstance(wait_select_option[0], CallbackQueryHandler)\n        assert wait_select_option[0].pattern == SelectOptionData\n\n        assert isinstance(wait_select_option[1], CallbackQueryHandler)\n        assert wait_select_option[1].pattern == BackData\n\n        assert self.WAIT_TEXT_INPUT in actual.states\n        wait_scale_value = actual.states[self.WAIT_TEXT_INPUT]\n        assert len(wait_scale_value) == 2\n\n        assert isinstance(wait_scale_value[0], MessageHandler)\n\n        assert isinstance(wait_scale_value[1], CallbackQueryHandler)\n        assert wait_scale_value[1].pattern == self.sut.entry_point_data_type\n\n        fallbacks = actual.fallbacks\n        assert len(fallbacks) == 1\n        assert isinstance(fallbacks[0], CommandHandler)\n        assert fallbacks[0].commands == {\"cancel\"}\n\n        map_to_parent = actual.map_to_parent\n        assert map_to_parent is not None\n        assert AbstractFileTaskProcessor.WAIT_FILE_TASK in map_to_parent\n        assert (\n            map_to_parent[AbstractFileTaskProcessor.WAIT_FILE_TASK]\n            == AbstractFileTaskProcessor.WAIT_FILE_TASK\n        )\n\n    @pytest.mark.asyncio\n    async def test_ask_select_option(self) -> None:\n        self.telegram_callback_query.data = self.FILE_DATA\n        actual = await self.sut._ask_select_option(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_SELECT_OPTION\n        self.telegram_service.answer_query_and_drop_data.assert_called_once_with(\n            self.telegram_context, self.telegram_callback_query\n        )\n        self.telegram_callback_query.edit_message_text.assert_called_once_with(\n            self.sut.ask_select_option_text, reply_markup=ANY\n        )\n\n    @pytest.mark.asyncio\n    async def test_ask_select_option_invalid_callback_query_data(self) -> None:\n        self.telegram_callback_query.data = None\n\n        with pytest.raises(CallbackQueryDataTypeError):\n            await self.sut._ask_select_option(self.telegram_update, self.telegram_context)\n\n        self.telegram_service.answer_query_and_drop_data.assert_called_once_with(\n            self.telegram_context, self.telegram_callback_query\n        )\n        self.telegram_callback_query.edit_message_text.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_ask_text_input(self) -> None:\n        self.telegram_callback_query.data = self.select_option_data\n        self.telegram_callback_query.edit_message_text.return_value = self.telegram_message\n\n        actual = await self.sut._ask_text_input(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_TEXT_INPUT\n        self.telegram_service.answer_query_and_drop_data.assert_called_once_with(\n            self.telegram_context, self.telegram_callback_query\n        )\n        self.telegram_callback_query.edit_message_text.assert_called_once_with(\n            self.select_option_data.option.ask_value_text,\n            reply_markup=ANY,\n        )\n        self.telegram_service.cache_message_data.assert_called_once_with(\n            self.telegram_context, self.telegram_message\n        )\n\n    @pytest.mark.asyncio\n    async def test_ask_text_input_invalid_callback_query_data(self) -> None:\n        self.telegram_callback_query.data = self.FILE_DATA\n\n        with pytest.raises(CallbackQueryDataTypeError):\n            await self.sut._ask_text_input(self.telegram_update, self.telegram_context)\n\n        self.telegram_service.answer_query_and_drop_data.assert_called_once_with(\n            self.telegram_context, self.telegram_callback_query\n        )\n        self.telegram_callback_query.edit_message_text.assert_not_called()\n        self.telegram_service.cache_message_data.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_process_text_input(self) -> None:\n        self.telegram_update.callback_query = None\n\n        get_file_data = self.get_file_data_side_effect_by_index(\n            self.select_option_data, self.option_input_data\n        )\n        self.telegram_service.get_file_data.side_effect = get_file_data\n\n        actual = await self.sut._process_text_input(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        assert self.telegram_service.get_file_data.call_count == 2\n        self.telegram_service.cache_file_data.assert_called_once_with(\n            self.telegram_context, self.option_input_data\n        )\n\n    @pytest.mark.asyncio\n    async def test_process_text_input_invalid_input(self) -> None:\n        with patch.object(self.sut, \"get_cleaned_text_input\", return_value=None):\n            actual = await self.sut._process_text_input(self.telegram_update, self.telegram_context)\n\n            assert actual == self.WAIT_TEXT_INPUT\n            self.telegram_service.get_file_data.assert_not_called()\n            self.telegram_service.cache_file_data.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_process_text_input_invalid_file_data(self) -> None:\n        self.telegram_service.get_file_data.return_value = self.FILE_DATA\n\n        with pytest.raises(FileDataTypeError):\n            await self.sut._process_text_input(self.telegram_update, self.telegram_context)\n        self.telegram_service.get_file_data.assert_called_once_with(self.telegram_context)\n        self.telegram_service.cache_file_data.assert_not_called()\n"
  },
  {
    "path": "tests/pdf_processor/test_abstract_pdf_text_input_processor.py",
    "content": "from collections.abc import AsyncGenerator, Callable\nfrom contextlib import asynccontextmanager\nfrom unittest.mock import MagicMock, patch\n\nimport pytest\nfrom telegram.constants import ParseMode\nfrom telegram.ext import CallbackQueryHandler, CommandHandler, ConversationHandler, MessageHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.file_processor import AbstractFileTaskProcessor\nfrom pdf_bot.language import LanguageService\nfrom pdf_bot.models import BackData, FileData, FileTaskResult, TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import AbstractPdfTextInputProcessor, TextInputData\nfrom pdf_bot.telegram_internal import TelegramService\nfrom pdf_bot.telegram_internal.exceptions import TelegramGetUserDataError\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.path_test_mixin import PathTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass MockProcessor(PathTestMixin, AbstractPdfTextInputProcessor):\n    FILE_NAME = \"file_name\"\n\n    def __init__(\n        self,\n        pdf_service: PdfService,\n        telegram_service: TelegramService,\n        language_service: LanguageService,\n        bypass_init_check: bool = False,\n    ) -> None:\n        super().__init__(pdf_service, telegram_service, language_service, bypass_init_check)\n        path = self.mock_file_path()\n        self.file_task_result = FileTaskResult(path)\n\n    @property\n    def entry_point_data_type(self) -> type[FileData]:\n        return FileData\n\n    @property\n    def task_type(self) -> TaskType:\n        return TaskType.decrypt_pdf\n\n    @property\n    def task_data(self) -> TaskData:\n        return MagicMock(spec=TaskData)\n\n    def get_ask_text_input_text(self, _: Callable[[str], str]) -> str:\n        return \"ask_text_input_text\"\n\n    @property\n    def invalid_text_input_error(self) -> str:\n        return \"invalid_text_input_error\"\n\n    def get_cleaned_text_input(self, _text: str) -> str | None:\n        return self.FILE_NAME\n\n    @asynccontextmanager\n    async def process_file_task(self, _file_data: FileData) -> AsyncGenerator[FileTaskResult, None]:\n        yield self.file_task_result\n\n\nclass TestAbstractPdfTextInputProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    WAIT_TEXT_INPUT = \"wait_text_input\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n\n        self.text_input_data = TextInputData(\n            id=self.TELEGRAM_DOCUMENT_ID,\n            name=self.TELEGRAM_DOCUMENT_NAME,\n            text=MockProcessor.FILE_NAME,\n        )\n\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = MockProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_handler(self) -> None:\n        actual = self.sut.handler\n\n        assert isinstance(actual, ConversationHandler)\n\n        entry_points = actual.entry_points\n        assert len(entry_points) == 1\n        assert isinstance(entry_points[0], CallbackQueryHandler)\n        assert entry_points[0].pattern == self.sut.entry_point_data_type\n\n        assert self.WAIT_TEXT_INPUT in actual.states\n        wait_file_name_state = actual.states[self.WAIT_TEXT_INPUT]\n        assert len(wait_file_name_state) == 2\n\n        assert isinstance(wait_file_name_state[0], MessageHandler)\n        assert isinstance(wait_file_name_state[1], CallbackQueryHandler)\n        assert wait_file_name_state[1].pattern == BackData\n\n        fallbacks = actual.fallbacks\n        assert len(fallbacks) == 1\n        assert isinstance(fallbacks[0], CommandHandler)\n        assert fallbacks[0].commands == {\"cancel\"}\n\n        map_to_parent = actual.map_to_parent\n        assert map_to_parent is not None\n        assert AbstractFileTaskProcessor.WAIT_FILE_TASK in map_to_parent\n        assert (\n            map_to_parent[AbstractFileTaskProcessor.WAIT_FILE_TASK]\n            == AbstractFileTaskProcessor.WAIT_FILE_TASK\n        )\n\n    @pytest.mark.asyncio\n    async def test_ask_text_input(self) -> None:\n        self.telegram_callback_query.edit_message_text.return_value = self.telegram_message\n\n        actual = await self.sut._ask_text_input(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_TEXT_INPUT\n        self.telegram_service.answer_query_and_drop_data.assert_called_once_with(\n            self.telegram_context, self.telegram_callback_query\n        )\n        self.telegram_callback_query.edit_message_text.assert_called_once_with(\n            self.sut.get_ask_text_input_text(self.language_service.set_app_language()),\n            parse_mode=ParseMode.HTML,\n            reply_markup=self.BACK_INLINE_MARKUP,\n        )\n        self.telegram_service.cache_message_data.assert_called_once_with(\n            self.telegram_context, self.telegram_message\n        )\n\n    @pytest.mark.asyncio\n    async def test_process_text_input(self) -> None:\n        self.telegram_update.callback_query = None\n\n        get_file_data = self.get_file_data_side_effect_by_index(\n            self.FILE_DATA, self.text_input_data\n        )\n        self.telegram_service.get_file_data.side_effect = get_file_data\n\n        actual = await self.sut._process_text_input(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        assert self.telegram_service.get_file_data.call_count == 2\n        self.telegram_service.cache_file_data.assert_called_once_with(\n            self.telegram_context, self.text_input_data\n        )\n\n    @pytest.mark.asyncio\n    async def test_process_text_input_invalid_input(self) -> None:\n        with patch.object(self.sut, \"get_cleaned_text_input\", return_value=None):\n            actual = await self.sut._process_text_input(self.telegram_update, self.telegram_context)\n\n            assert actual == self.WAIT_TEXT_INPUT\n            self.telegram_service.get_file_data.assert_not_called()\n            self.telegram_service.cache_file_data.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_process_text_input_get_file_data_error(self) -> None:\n        self.telegram_service.get_file_data.side_effect = TelegramGetUserDataError()\n\n        actual = await self.sut._process_text_input(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.get_file_data.assert_called_once_with(self.telegram_context)\n        self.telegram_service.cache_file_data.assert_not_called()\n"
  },
  {
    "path": "tests/pdf_processor/test_compress_pdf_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf.models import CompressResult\nfrom pdf_bot.pdf_processor import CompressPdfData, CompressPdfProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestCompressPdfProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = CompressPdfProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_get_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.compress_pdf\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Compress\", CompressPdfData)\n\n    def test_handler(self) -> None:\n        actual = self.sut.handler\n\n        assert isinstance(actual, CallbackQueryHandler)\n        assert actual.pattern == CompressPdfData\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        result = CompressResult(2, 1, self.file_path)\n        self.pdf_service.compress_pdf.return_value.__aenter__.return_value = result\n\n        async with self.sut.process_file_task(self.FILE_DATA) as actual:\n            assert actual.path == self.file_path\n            assert actual.message is not None\n            self.pdf_service.compress_pdf.assert_called_once_with(self.FILE_DATA.id)\n"
  },
  {
    "path": "tests/pdf_processor/test_crop_pdf_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import FileDataTypeError\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import CropOptionAndInputData, CropPdfData, CropPdfProcessor, CropType\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestPdfProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    CROP_TEXT = \"0.1\"\n    CROP_VALUE = float(CROP_TEXT)\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.crop_pdf_data = CropPdfData(self.TELEGRAM_DOCUMENT_ID, self.TELEGRAM_DOCUMENT_NAME)\n\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = CropPdfProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_entry_point_data_type(self) -> None:\n        actual = self.sut.entry_point_data_type\n        assert actual == CropPdfData\n\n    def test_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.crop_pdf\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Crop\", CropPdfData)\n\n    def test_select_option_type(self) -> None:\n        actual = self.sut.select_option_type\n        assert actual == CropType\n\n    def test_option_and_input_data_type(self) -> None:\n        actual = self.sut.option_and_input_data_type\n        assert actual == CropOptionAndInputData\n\n    def test_get_cleaned_text_input(self) -> None:\n        actual = self.sut.get_cleaned_text_input(self.CROP_TEXT)\n        assert actual == self.CROP_VALUE\n\n    def test_get_cleaned_text_input_invalid(self) -> None:\n        actual = self.sut.get_cleaned_text_input(\"clearly_invalid\")\n        assert actual is None\n\n    @pytest.mark.asyncio\n    async def test_process_file_task_scale_by_factor(self) -> None:\n        file_data = CropOptionAndInputData(\n            id=self.TELEGRAM_DOCUMENT_ID,\n            name=self.TELEGRAM_DOCUMENT_NAME,\n            option=CropType.by_percentage,\n            text=self.CROP_VALUE,\n        )\n        self.pdf_service.crop_pdf_by_percentage.return_value.__aenter__.return_value = (\n            self.file_path\n        )\n\n        async with self.sut.process_file_task(file_data) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.crop_pdf_by_percentage.assert_called_once_with(\n                file_data.id, self.CROP_VALUE\n            )\n\n    @pytest.mark.asyncio\n    async def test_process_file_task_scale_to_dimension(self) -> None:\n        file_data = CropOptionAndInputData(\n            id=self.TELEGRAM_DOCUMENT_ID,\n            name=self.TELEGRAM_DOCUMENT_NAME,\n            option=CropType.by_margin_size,\n            text=self.CROP_VALUE,\n        )\n        self.pdf_service.crop_pdf_by_margin_size.return_value.__aenter__.return_value = (\n            self.file_path\n        )\n\n        async with self.sut.process_file_task(file_data) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.crop_pdf_by_margin_size.assert_called_once_with(\n                file_data.id, self.CROP_VALUE\n            )\n\n    @pytest.mark.asyncio\n    async def test_process_file_task_invalid_file_data(self) -> None:\n        with pytest.raises(FileDataTypeError):\n            async with self.sut.process_file_task(self.FILE_DATA):\n                pass\n        self.pdf_service.crop_pdf_by_percentage.assert_not_called()\n        self.pdf_service.crop_pdf_by_margin_size.assert_not_called()\n"
  },
  {
    "path": "tests/pdf_processor/test_decrypt_pdf_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import FileDataTypeError\nfrom pdf_bot.models import FileData, TaskData\nfrom pdf_bot.pdf import PdfIncorrectPasswordError, PdfService\nfrom pdf_bot.pdf_processor import DecryptPdfData, DecryptPdfProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestDecryptPdfProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    WAIT_TEXT_INPUT = \"wait_text_input\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = DecryptPdfProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_get_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.decrypt_pdf\n\n    def test_entry_point_data_type(self) -> None:\n        actual = self.sut.entry_point_data_type\n        assert actual == DecryptPdfData\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Decrypt\", DecryptPdfData)\n\n    def test_get_cleaned_text_input(self) -> None:\n        actual = self.sut.get_cleaned_text_input(self.TELEGRAM_TEXT)\n        assert actual == self.TELEGRAM_TEXT\n\n    @pytest.mark.asyncio\n    async def test_get_custom_error_handlers(self) -> None:\n        file_data = FileData(self.TELEGRAM_DOCUMENT_ID, self.TELEGRAM_DOCUMENT_NAME)\n        handlers = self.sut.custom_error_handlers\n\n        handler = handlers.get(PdfIncorrectPasswordError)\n        assert handler is not None\n\n        actual = await handler(\n            self.telegram_update, self.telegram_context, RuntimeError(), file_data\n        )\n\n        assert actual == self.WAIT_TEXT_INPUT\n        self.telegram_message.reply_text.assert_called_once()\n        self.telegram_service.cache_file_data.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        self.pdf_service.decrypt_pdf.return_value.__aenter__.return_value = self.file_path\n\n        async with self.sut.process_file_task(self.TEXT_INPUT_DATA) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.decrypt_pdf.assert_called_once_with(\n                self.TEXT_INPUT_DATA.id, self.TEXT_INPUT_DATA.text\n            )\n\n    @pytest.mark.asyncio\n    async def test_process_file_task_invalid_file_data(self) -> None:\n        with pytest.raises(FileDataTypeError):\n            async with self.sut.process_file_task(self.FILE_DATA):\n                pass\n        self.pdf_service.decrypt_pdf.assert_not_called()\n"
  },
  {
    "path": "tests/pdf_processor/test_encrypt_pdf_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import FileDataTypeError\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import EncryptPdfData, EncryptPdfProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestEncryptPdfProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = EncryptPdfProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_get_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.encrypt_pdf\n\n    def test_entry_point_data_type(self) -> None:\n        actual = self.sut.entry_point_data_type\n        assert actual == EncryptPdfData\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Encrypt\", EncryptPdfData)\n\n    def test_get_cleaned_text_input(self) -> None:\n        actual = self.sut.get_cleaned_text_input(self.TELEGRAM_TEXT)\n        assert actual == self.TELEGRAM_TEXT\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        self.pdf_service.encrypt_pdf.return_value.__aenter__.return_value = self.file_path\n\n        async with self.sut.process_file_task(self.TEXT_INPUT_DATA) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.encrypt_pdf.assert_called_once_with(\n                self.TEXT_INPUT_DATA.id, self.TEXT_INPUT_DATA.text\n            )\n\n    @pytest.mark.asyncio\n    async def test_process_file_task_invalid_file_data(self) -> None:\n        with pytest.raises(FileDataTypeError):\n            async with self.sut.process_file_task(self.FILE_DATA):\n                pass\n        self.pdf_service.encrypt_pdf.assert_not_called()\n"
  },
  {
    "path": "tests/pdf_processor/test_extract_pdf_image_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import ExtractPdfImageData, ExtractPdfImageProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestExtractPdfImageProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = ExtractPdfImageProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_get_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.get_pdf_image\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Extract images\", ExtractPdfImageData)\n\n    def test_handler(self) -> None:\n        actual = self.sut.handler\n\n        assert isinstance(actual, CallbackQueryHandler)\n        assert actual.pattern == ExtractPdfImageData\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        self.pdf_service.extract_pdf_images.return_value.__aenter__.return_value = self.file_path\n\n        async with self.sut.process_file_task(self.FILE_DATA) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.extract_pdf_images.assert_called_once_with(self.FILE_DATA.id)\n"
  },
  {
    "path": "tests/pdf_processor/test_extract_pdf_text_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import ExtractPdfTextData, ExtractPdfTextProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestExtractPDFTextProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = ExtractPdfTextProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_get_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.get_pdf_text\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Extract text\", ExtractPdfTextData)\n\n    def test_handler(self) -> None:\n        actual = self.sut.handler\n\n        assert isinstance(actual, CallbackQueryHandler)\n        assert actual.pattern == ExtractPdfTextData\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        self.pdf_service.extract_pdf_text.return_value.__aenter__.return_value = self.file_path\n\n        async with self.sut.process_file_task(self.FILE_DATA) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.extract_pdf_text.assert_called_once_with(self.FILE_DATA.id)\n"
  },
  {
    "path": "tests/pdf_processor/test_grayscale_pdf_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import GrayscalePdfData, GrayscalePdfProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestGrayscalePdfProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = GrayscalePdfProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_get_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.grayscale_pdf\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Grayscale\", GrayscalePdfData)\n\n    def test_handler(self) -> None:\n        actual = self.sut.handler\n\n        assert isinstance(actual, CallbackQueryHandler)\n        assert actual.pattern == GrayscalePdfData\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        self.pdf_service.grayscale_pdf.return_value.__aenter__.return_value = self.file_path\n\n        async with self.sut.process_file_task(self.FILE_DATA) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.grayscale_pdf.assert_called_once_with(self.FILE_DATA.id)\n"
  },
  {
    "path": "tests/pdf_processor/test_ocr_pdf_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import OcrPdfData, OcrPdfProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestOCRPdfProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = OcrPdfProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_get_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.ocr_pdf\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"OCR\", OcrPdfData)\n\n    def test_handler(self) -> None:\n        actual = self.sut.handler\n\n        assert isinstance(actual, CallbackQueryHandler)\n        assert actual.pattern == OcrPdfData\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        self.pdf_service.ocr_pdf.return_value.__aenter__.return_value = self.file_path\n\n        async with self.sut.process_file_task(self.FILE_DATA) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.ocr_pdf.assert_called_once_with(self.FILE_DATA.id)\n"
  },
  {
    "path": "tests/pdf_processor/test_pdf_task_processor.py",
    "content": "from pdf_bot.pdf_processor import AbstractPdfProcessor, PdfTaskProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramTestMixin\n\n\nclass TestPdfTaskProcessor(\n    LanguageServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.language_service = self.mock_language_service()\n        self.sut = PdfTaskProcessor(self.language_service)\n\n    def test_processor_type(self) -> None:\n        actual = self.sut.processor_type\n        assert actual == AbstractPdfProcessor\n"
  },
  {
    "path": "tests/pdf_processor/test_pdf_to_image_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import PdfToImageData, PdfToImageProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestPdfToImageProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = PdfToImageProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_get_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.pdf_to_image\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"To images\", PdfToImageData)\n\n    def test_handler(self) -> None:\n        actual = self.sut.handler\n\n        assert isinstance(actual, CallbackQueryHandler)\n        assert actual.pattern == PdfToImageData\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        self.pdf_service.convert_pdf_to_images.return_value.__aenter__.return_value = self.file_path\n\n        async with self.sut.process_file_task(self.FILE_DATA) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.convert_pdf_to_images.assert_called_once_with(self.FILE_DATA.id)\n"
  },
  {
    "path": "tests/pdf_processor/test_preview_pdf_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CallbackQueryHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import PreviewPdfData, PreviewPdfProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestPreviewPdfProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = PreviewPdfProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_get_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.preview_pdf\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Preview\", PreviewPdfData)\n\n    def test_handler(self) -> None:\n        actual = self.sut.handler\n\n        assert isinstance(actual, CallbackQueryHandler)\n        assert actual.pattern == PreviewPdfData\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        self.pdf_service.preview_pdf.return_value.__aenter__.return_value = self.file_path\n\n        async with self.sut.process_file_task(self.FILE_DATA) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.preview_pdf.assert_called_once_with(self.FILE_DATA.id)\n"
  },
  {
    "path": "tests/pdf_processor/test_rename_pdf_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import FileDataTypeError\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import RenamePdfData, RenamePdfProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestRenamePdfProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = RenamePdfProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.rename_pdf\n\n    def test_entry_point_data_type(self) -> None:\n        actual = self.sut.entry_point_data_type\n        assert actual == RenamePdfData\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Rename\", RenamePdfData)\n\n    def test_get_cleaned_text_input(self) -> None:\n        text = \"valid.pdf\"\n        actual = self.sut.get_cleaned_text_input(text)\n        assert actual == text\n\n    def test_get_cleaned_text_input_invalid(self) -> None:\n        text = \"in<va>lid.pdf\"\n        actual = self.sut.get_cleaned_text_input(text)\n        assert actual is None\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        self.pdf_service.rename_pdf.return_value.__aenter__.return_value = self.file_path\n\n        async with self.sut.process_file_task(self.TEXT_INPUT_DATA) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.rename_pdf.assert_called_once_with(\n                self.TEXT_INPUT_DATA.id, self.TEXT_INPUT_DATA.text\n            )\n\n    @pytest.mark.asyncio\n    async def test_process_file_task_invalid_file_data(self) -> None:\n        with pytest.raises(FileDataTypeError):\n            async with self.sut.process_file_task(self.FILE_DATA):\n                pass\n        self.pdf_service.rename_pdf.assert_not_called()\n"
  },
  {
    "path": "tests/pdf_processor/test_rotate_pdf_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CallbackQueryHandler, CommandHandler, ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import CallbackQueryDataTypeError, FileDataTypeError\nfrom pdf_bot.file_processor import AbstractFileTaskProcessor\nfrom pdf_bot.models import BackData, TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import RotateDegreeData, RotatePdfData, RotatePdfProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestRotatePdfProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    WAIT_DEGREE = \"wait_degree\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.telegram_update.callback_query = None\n\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = RotatePdfProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.rotate_pdf\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Rotate\", RotatePdfData)\n\n    def test_handler(self) -> None:\n        actual = self.sut.handler\n        assert isinstance(actual, ConversationHandler)\n\n        entry_points = actual.entry_points\n        assert len(entry_points) == 1\n        assert isinstance(entry_points[0], CallbackQueryHandler)\n        assert entry_points[0].pattern == RotatePdfData\n\n        assert self.WAIT_DEGREE in actual.states\n        wait_degree_state = actual.states[self.WAIT_DEGREE]\n        assert len(wait_degree_state) == 2\n\n        assert isinstance(wait_degree_state[0], CallbackQueryHandler)\n        assert wait_degree_state[0].pattern == RotateDegreeData\n\n        assert isinstance(wait_degree_state[1], CallbackQueryHandler)\n        assert wait_degree_state[1].pattern == BackData\n\n        fallbacks = actual.fallbacks\n        assert len(fallbacks) == 1\n        assert isinstance(fallbacks[0], CommandHandler)\n        assert fallbacks[0].commands == {\"cancel\"}\n\n        map_to_parent = actual.map_to_parent\n        assert map_to_parent is not None\n        assert AbstractFileTaskProcessor.WAIT_FILE_TASK in map_to_parent\n        assert (\n            map_to_parent[AbstractFileTaskProcessor.WAIT_FILE_TASK]\n            == AbstractFileTaskProcessor.WAIT_FILE_TASK\n        )\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        degree = 90\n        degree_data = RotateDegreeData(\n            id=self.TELEGRAM_DOCUMENT_ID,\n            name=self.TELEGRAM_DOCUMENT_NAME,\n            degree=degree,\n        )\n        self.pdf_service.rotate_pdf.return_value.__aenter__.return_value = self.file_path\n\n        async with self.sut.process_file_task(degree_data) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.rotate_pdf.assert_called_once_with(degree_data.id, degree)\n\n    @pytest.mark.asyncio\n    async def test_process_file_task_invalid_file_data(self) -> None:\n        with pytest.raises(FileDataTypeError):\n            async with self.sut.process_file_task(self.FILE_DATA):\n                pass\n        self.pdf_service.rotate_pdf.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_ask_degree(self) -> None:\n        self.telegram_callback_query.data = RotatePdfData(\n            self.TELEGRAM_DOCUMENT_ID, self.TELEGRAM_DOCUMENT_NAME\n        )\n        self.telegram_update.callback_query = self.telegram_callback_query\n\n        actual = await self.sut.ask_degree(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_DEGREE\n        self.telegram_service.answer_query_and_drop_data.assert_called_once_with(\n            self.telegram_context, self.telegram_callback_query\n        )\n        self.telegram_callback_query.edit_message_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_ask_degree_invalid_callback_query_data(self) -> None:\n        self.telegram_update.callback_query = self.telegram_callback_query\n\n        with pytest.raises(CallbackQueryDataTypeError):\n            await self.sut.ask_degree(self.telegram_update, self.telegram_context)\n        self.telegram_service.answer_query_and_drop_data.assert_called_once_with(\n            self.telegram_context, self.telegram_callback_query\n        )\n        self.telegram_callback_query.edit_message_text.assert_not_called()\n"
  },
  {
    "path": "tests/pdf_processor/test_scale_pdf_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import FileDataTypeError\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf.models import ScaleData\nfrom pdf_bot.pdf_processor import (\n    ScaleOptionAndInputData,\n    ScalePdfData,\n    ScalePdfProcessor,\n    ScaleType,\n)\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestPdfProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    SCALE_DATA_TEXT = \"0.1 0.2\"\n    SCALE_DATA = ScaleData(0.1, 0.2)\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.scale_pdf_data = ScalePdfData(self.TELEGRAM_DOCUMENT_ID, self.TELEGRAM_DOCUMENT_NAME)\n\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = ScalePdfProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_entry_point_data_type(self) -> None:\n        actual = self.sut.entry_point_data_type\n        assert actual == ScalePdfData\n\n    def test_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.scale_pdf\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Scale\", ScalePdfData)\n\n    def test_select_option_type(self) -> None:\n        actual = self.sut.select_option_type\n        assert actual == ScaleType\n\n    def test_option_and_input_data_type(self) -> None:\n        actual = self.sut.option_and_input_data_type\n        assert actual == ScaleOptionAndInputData\n\n    def test_get_cleaned_text_input(self) -> None:\n        actual = self.sut.get_cleaned_text_input(self.SCALE_DATA_TEXT)\n        assert actual == self.SCALE_DATA\n\n    def test_get_cleaned_text_input_invalid(self) -> None:\n        actual = self.sut.get_cleaned_text_input(\"clearly_invalid\")\n        assert actual is None\n\n    @pytest.mark.asyncio\n    async def test_process_file_task_scale_by_factor(self) -> None:\n        file_data = ScaleOptionAndInputData(\n            id=self.TELEGRAM_DOCUMENT_ID,\n            name=self.TELEGRAM_DOCUMENT_NAME,\n            option=ScaleType.by_factor,\n            text=self.SCALE_DATA,\n        )\n        self.pdf_service.scale_pdf_by_factor.return_value.__aenter__.return_value = self.file_path\n\n        async with self.sut.process_file_task(file_data) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.scale_pdf_by_factor.assert_called_once_with(\n                file_data.id, self.SCALE_DATA\n            )\n\n    @pytest.mark.asyncio\n    async def test_process_file_task_scale_to_dimension(self) -> None:\n        file_data = ScaleOptionAndInputData(\n            id=self.TELEGRAM_DOCUMENT_ID,\n            name=self.TELEGRAM_DOCUMENT_NAME,\n            option=ScaleType.to_dimension,\n            text=self.SCALE_DATA,\n        )\n        self.pdf_service.scale_pdf_to_dimension.return_value.__aenter__.return_value = (\n            self.file_path\n        )\n\n        async with self.sut.process_file_task(file_data) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.scale_pdf_to_dimension.assert_called_once_with(\n                file_data.id, self.SCALE_DATA\n            )\n\n    @pytest.mark.asyncio\n    async def test_process_file_task_invalid_file_data(self) -> None:\n        with pytest.raises(FileDataTypeError):\n            async with self.sut.process_file_task(self.FILE_DATA):\n                pass\n\n        self.pdf_service.scale_pdf_by_factor.assert_not_called()\n        self.pdf_service.scale_pdf_to_dimension.assert_not_called()\n"
  },
  {
    "path": "tests/pdf_processor/test_split_pdf_processor.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.errors import FileDataTypeError\nfrom pdf_bot.models import TaskData\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf_processor import SplitPdfData, SplitPdfProcessor\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestSplitPdfProcessor(\n    LanguageServiceTestMixin,\n    TelegramServiceTestMixin,\n    TelegramTestMixin,\n):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = SplitPdfProcessor(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n            bypass_init_check=True,\n        )\n\n    def test_task_type(self) -> None:\n        actual = self.sut.task_type\n        assert actual == TaskType.split_pdf\n\n    def test_entry_point_data_type(self) -> None:\n        actual = self.sut.entry_point_data_type\n        assert actual == SplitPdfData\n\n    def test_task_data(self) -> None:\n        actual = self.sut.task_data\n        assert actual == TaskData(\"Split\", SplitPdfData)\n\n    @pytest.mark.parametrize(\n        (\"is_valid\", \"expected\"), [(True, TelegramTestMixin.TELEGRAM_TEXT), (False, None)]\n    )\n    def test_get_cleaned_text_input(self, is_valid: bool, expected: str | None) -> None:\n        self.pdf_service.split_range_valid.return_value = is_valid\n        actual = self.sut.get_cleaned_text_input(self.TELEGRAM_TEXT)\n        assert actual == expected\n\n    @pytest.mark.asyncio\n    async def test_process_file_task(self) -> None:\n        self.pdf_service.split_pdf.return_value.__aenter__.return_value = self.file_path\n\n        async with self.sut.process_file_task(self.TEXT_INPUT_DATA) as actual:\n            assert actual == self.file_task_result\n            self.pdf_service.split_pdf.assert_called_once_with(\n                self.TEXT_INPUT_DATA.id, self.TEXT_INPUT_DATA.text\n            )\n\n    @pytest.mark.asyncio\n    async def test_process_file_task_invalid_file_data(self) -> None:\n        with pytest.raises(FileDataTypeError):\n            async with self.sut.process_file_task(self.FILE_DATA):\n                pass\n        self.pdf_service.split_pdf.assert_not_called()\n"
  },
  {
    "path": "tests/telegram_internal/__init__.py",
    "content": "from .telegram_service_test_mixin import TelegramServiceTestMixin\nfrom .telegram_test_mixin import TelegramTestMixin\n\n__all__ = [\"TelegramServiceTestMixin\", \"TelegramTestMixin\"]\n"
  },
  {
    "path": "tests/telegram_internal/telegram_service_test_mixin.py",
    "content": "from collections.abc import Callable\nfrom unittest.mock import AsyncMock\n\nfrom telegram.ext import ContextTypes, ConversationHandler\n\nfrom pdf_bot.models import FileData\nfrom pdf_bot.telegram_internal import TelegramService\nfrom tests.telegram_internal.telegram_test_mixin import TelegramTestMixin\n\n\nclass TelegramServiceTestMixin(TelegramTestMixin):\n    def mock_telegram_service(self) -> AsyncMock:\n        service = AsyncMock(spec=TelegramService)\n        service.check_pdf_document.return_value = self.telegram_document\n        service.check_image.return_value = self.telegram_document\n        service.cancel_conversation.return_value = ConversationHandler.END\n        service.reply_with_cancel_markup.side_effect = self.telegram_message\n        service.reply_with_back_markup.side_effect = self.telegram_message\n        service.get_file_data.return_value = self.FILE_DATA\n        service.get_message_data.return_value = self.MESSAGE_DATA\n        service.get_back_inline_markup.return_value = self.BACK_INLINE_MARKUP\n        service.download_pdf_file.return_value.__aenter__.return_value = self.download_path\n\n        return service\n\n    def get_file_data_side_effect_by_index(\n        self, *file_data_args: FileData\n    ) -> Callable[[ContextTypes.DEFAULT_TYPE], FileData]:\n        index = 0\n\n        def get_file_data(_context: ContextTypes.DEFAULT_TYPE) -> FileData:\n            nonlocal index\n            data = file_data_args[index]\n            index += 1\n            return data\n\n        return get_file_data\n"
  },
  {
    "path": "tests/telegram_internal/telegram_test_mixin.py",
    "content": "from unittest.mock import AsyncMock, MagicMock\n\nfrom telegram import (\n    Bot,\n    CallbackQuery,\n    Chat,\n    Document,\n    File,\n    InlineKeyboardMarkup,\n    Message,\n    PhotoSize,\n    PreCheckoutQuery,\n    Update,\n    User,\n)\nfrom telegram.ext import ContextTypes\n\nfrom pdf_bot.models import FileData, FileTaskResult, MessageData\nfrom pdf_bot.pdf_processor.abstract_pdf_text_input_processor import TextInputData\nfrom tests.path_test_mixin import PathTestMixin\n\n\nclass TelegramTestMixin(PathTestMixin):\n    TELEGRAM_USER_ID = 0\n    TELEGRAM_QUERY_USER_ID = 1\n    TELEGRAM_CHAT_ID = 2\n    TELEGRAM_MESSAGE_ID = 3\n    TELEGRAM_USERNAME = \"username\"\n    TELEGRAM_FILE_ID = \"file_id\"\n    TELEGRAM_DOCUMENT_ID = \"document_id\"\n    TELEGRAM_DOCUMENT_NAME = \"document_name\"\n    TELEGRAM_PHOTO_SIZE_ID = \"photo_size_id\"\n    TELEGRAM_TEXT = \"text\"\n\n    FILE_DATA = FileData(TELEGRAM_DOCUMENT_ID, TELEGRAM_DOCUMENT_NAME)\n    MESSAGE_DATA = MessageData(TELEGRAM_CHAT_ID, TELEGRAM_MESSAGE_ID)\n    TEXT_INPUT_DATA = TextInputData(\n        id=TELEGRAM_DOCUMENT_ID,\n        name=TELEGRAM_DOCUMENT_NAME,\n        text=TELEGRAM_TEXT,\n    )\n\n    BACK_INLINE_MARKUP = MagicMock(spec=InlineKeyboardMarkup)\n\n    def setup_method(self) -> None:\n        self.dir_path = self.mock_dir_path()\n        self.download_path = self.mock_file_path()\n        self.file_path = self.mock_file_path()\n        self.file_task_result = FileTaskResult(self.file_path)\n\n        self.telegram_bot = MagicMock(spec=Bot)\n\n        self.telegram_user = MagicMock(spec=User)\n        self.telegram_user.id = self.TELEGRAM_USER_ID\n        self.telegram_user.username = self.TELEGRAM_USERNAME\n\n        self.telegram_query_user = MagicMock(spec=User)\n        self.telegram_query_user.id = self.TELEGRAM_QUERY_USER_ID\n\n        self.telegram_chat = MagicMock(spec=Chat)\n        self.telegram_chat.id = self.TELEGRAM_CHAT_ID\n\n        self.telegram_file = MagicMock(spec=File)\n        self.telegram_file.file_id = self.TELEGRAM_FILE_ID\n\n        self.telegram_document = MagicMock(spec=Document)\n        self.telegram_document.file_id = self.TELEGRAM_DOCUMENT_ID\n        self.telegram_document.file_name = self.TELEGRAM_DOCUMENT_NAME\n\n        self.telegram_photo_size = MagicMock(spec=PhotoSize)\n        self.telegram_photo_size.file_id = self.TELEGRAM_PHOTO_SIZE_ID\n\n        self.telegram_message = AsyncMock(spec=Message)\n        self.telegram_message.chat = self.telegram_chat\n        self.telegram_message.chat_id = self.TELEGRAM_CHAT_ID\n        self.telegram_message.from_user = self.telegram_user\n        self.telegram_message.document = self.telegram_document\n        self.telegram_message.text = self.TELEGRAM_TEXT\n\n        self.telegram_callback_query = AsyncMock(spec=CallbackQuery)\n        self.telegram_callback_query.from_user = self.telegram_query_user\n        self.telegram_callback_query.message = self.telegram_message\n\n        self.telegram_pre_checkout_query = MagicMock(spec=PreCheckoutQuery)\n\n        self.telegram_update = AsyncMock(spec=Update)\n        self.telegram_update.message = self.telegram_message\n        self.telegram_update.effective_message = self.telegram_message\n        self.telegram_update.callback_query = self.telegram_callback_query\n        self.telegram_update.pre_checkout_query = self.telegram_pre_checkout_query\n\n        self.telegram_user_data = MagicMock(spec=dict)\n        self.telegram_context = AsyncMock(spec=ContextTypes.DEFAULT_TYPE)\n        self.telegram_context.bot = self.telegram_bot\n        self.telegram_context.user_data = self.telegram_user_data\n\n    def teardown_method(self) -> None:\n        pass\n"
  },
  {
    "path": "tests/telegram_internal/test_telegram_service.py",
    "content": "from dataclasses import dataclass\nfrom unittest.mock import MagicMock, call, patch\n\nimport pytest\nfrom telegram import File, InlineKeyboardMarkup, Message, ReplyKeyboardMarkup\nfrom telegram.constants import ChatAction, FileSizeLimit, MessageLimit, ParseMode\nfrom telegram.ext import Application, ConversationHandler\n\nfrom pdf_bot.analytics import AnalyticsService, EventAction, TaskType\nfrom pdf_bot.consts import FILE_DATA, MESSAGE_DATA\nfrom pdf_bot.io_internal import IOService\nfrom pdf_bot.models import BackData, FileData, MessageData\nfrom pdf_bot.telegram_internal import (\n    TelegramFileMimeTypeError,\n    TelegramFileTooLargeError,\n    TelegramGetUserDataError,\n    TelegramImageNotFoundError,\n    TelegramService,\n    TelegramUpdateUserDataError,\n)\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal.telegram_test_mixin import TelegramTestMixin\n\n\nclass TestTelegramService(LanguageServiceTestMixin, TelegramTestMixin):\n    IMG_MIME_TYPE = \"image\"\n    PDF_MIME_TYPE = \"pdf\"\n\n    USER_DATA_KEY = \"user_data_key\"\n    USER_DATA_VALUE = \"user_data_value\"\n    BACK = \"Back\"\n    CANCEL = \"Cancel\"\n    MESSAGE_TRUNCATED = \"\\n...\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.io_service = MagicMock(spec=IOService)\n        self.language_service = self.mock_language_service()\n        self.analytics_service = MagicMock(spec=AnalyticsService)\n        self.sut = TelegramService(\n            self.io_service,\n            self.language_service,\n            self.analytics_service,\n            bot=self.telegram_bot,\n        )\n\n        self.open_patcher = patch(\"builtins.open\")\n        self.open_patcher.start()\n\n    def teardown_method(self) -> None:\n        self.open_patcher.stop()\n        super().teardown_method()\n\n    @pytest.mark.asyncio\n    async def test_init_with_telegram_app(self) -> None:\n        app = MagicMock(spec=Application)\n        app.bot = self.telegram_bot\n        self.telegram_document.file_size = FileSizeLimit.FILESIZE_DOWNLOAD\n        self.sut.check_file_size(self.telegram_document)\n\n    @pytest.mark.asyncio\n    async def test_check_file_size(self) -> None:\n        self.telegram_document.file_size = FileSizeLimit.FILESIZE_DOWNLOAD\n        self.sut.check_file_size(self.telegram_document)\n\n    @pytest.mark.asyncio\n    async def test_check_file_size_too_large(self) -> None:\n        self.telegram_document.file_size = FileSizeLimit.FILESIZE_DOWNLOAD + 1\n        with pytest.raises(TelegramFileTooLargeError):\n            self.sut.check_file_size(self.telegram_document)\n\n    @pytest.mark.asyncio\n    async def test_check_file_upload_size(self) -> None:\n        file_stat = self.mock_path_stat(self.file_path)\n        file_stat.st_size = FileSizeLimit.FILESIZE_UPLOAD\n\n        self.sut.check_file_upload_size(self.file_path)\n\n    @pytest.mark.asyncio\n    async def test_check_file_upload_size_too_large(self) -> None:\n        file_stat = self.mock_path_stat(self.file_path)\n        file_stat.st_size = FileSizeLimit.FILESIZE_UPLOAD + 1\n\n        with pytest.raises(TelegramFileTooLargeError):\n            self.sut.check_file_upload_size(self.file_path)\n\n    @pytest.mark.asyncio\n    async def test_check_image_document(self) -> None:\n        self.telegram_document.mime_type = self.IMG_MIME_TYPE\n        self.telegram_document.file_size = FileSizeLimit.FILESIZE_DOWNLOAD\n        self.telegram_message.document = self.telegram_document\n\n        actual = self.sut.check_image(self.telegram_message)\n\n        assert actual == self.telegram_document\n\n    @pytest.mark.asyncio\n    async def test_check_image_document_invalid_mime_type(self) -> None:\n        self.telegram_document.mime_type = \"clearly_invalid\"\n        self.telegram_message.document = self.telegram_document\n\n        with pytest.raises(TelegramFileMimeTypeError):\n            self.sut.check_image(self.telegram_message)\n\n    @pytest.mark.asyncio\n    async def test_check_image_document_too_large(self) -> None:\n        self.telegram_document.mime_type = self.IMG_MIME_TYPE\n        self.telegram_document.file_size = FileSizeLimit.FILESIZE_DOWNLOAD + 1\n        self.telegram_message.document = self.telegram_document\n\n        with pytest.raises(TelegramFileTooLargeError):\n            self.sut.check_image(self.telegram_message)\n\n    @pytest.mark.asyncio\n    async def test_check_image(self) -> None:\n        self.telegram_photo_size.file_size = FileSizeLimit.FILESIZE_DOWNLOAD\n        self.telegram_message.document = None\n        self.telegram_message.photo = [self.telegram_photo_size]\n\n        actual = self.sut.check_image(self.telegram_message)\n\n        assert actual == self.telegram_photo_size\n\n    @pytest.mark.asyncio\n    async def test_check_image_not_found(self) -> None:\n        self.telegram_message.document = None\n        self.telegram_message.photo = []\n\n        with pytest.raises(TelegramImageNotFoundError):\n            self.sut.check_image(self.telegram_message)\n\n    @pytest.mark.asyncio\n    async def test_check_image_too_large(self) -> None:\n        self.telegram_photo_size.file_size = FileSizeLimit.FILESIZE_DOWNLOAD + 1\n        self.telegram_message.document = None\n        self.telegram_message.photo = [self.telegram_photo_size]\n\n        with pytest.raises(TelegramFileTooLargeError):\n            self.sut.check_image(self.telegram_message)\n\n    @pytest.mark.asyncio\n    async def test_check_pdf_document(self) -> None:\n        self.telegram_document.mime_type = self.PDF_MIME_TYPE\n        self.telegram_document.file_size = FileSizeLimit.FILESIZE_DOWNLOAD\n        self.telegram_message.document = self.telegram_document\n\n        actual = self.sut.check_pdf_document(self.telegram_message)\n\n        assert actual == self.telegram_document\n\n    @pytest.mark.asyncio\n    async def test_check_pdf_document_invalid_mime_type(self) -> None:\n        self.telegram_document.mime_type = \"clearly_invalid\"\n        self.telegram_message.document = self.telegram_document\n\n        with pytest.raises(TelegramFileMimeTypeError):\n            self.sut.check_pdf_document(self.telegram_message)\n\n    @pytest.mark.asyncio\n    async def test_check_pdf_document_too_large(self) -> None:\n        self.telegram_document.mime_type = self.PDF_MIME_TYPE\n        self.telegram_document.file_size = FileSizeLimit.FILESIZE_DOWNLOAD + 1\n        self.telegram_message.document = self.telegram_document\n\n        with pytest.raises(TelegramFileTooLargeError):\n            self.sut.check_pdf_document(self.telegram_message)\n\n    @pytest.mark.asyncio\n    async def test_download_pdf_file(self) -> None:\n        self.io_service.create_temp_pdf_file.return_value.__enter__.return_value = self.file_path\n        self.telegram_bot.get_file.return_value = self.telegram_file\n\n        async with self.sut.download_pdf_file(self.TELEGRAM_FILE_ID) as actual:\n            assert actual == self.file_path\n            self.telegram_bot.get_file.assert_called_with(self.TELEGRAM_FILE_ID)\n            self.telegram_file.download_to_drive.assert_called_once_with(custom_path=self.file_path)\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\"num_files\", [1, 2, 5])\n    async def test_download_files(self, num_files: int) -> None:\n        @dataclass\n        class FileAndPath:\n            file: MagicMock\n            path: str\n\n        file_ids: list[str] = []\n        file_paths: list[str] = []\n        files: dict[str, FileAndPath] = {}\n\n        for i in range(num_files):\n            file_id = f\"file_id_{i}\"\n            file_path = f\"file_path_{i}\"\n            file_ids.append(file_id)\n            file_paths.append(file_path)\n\n            file = MagicMock(spec=File)\n            files[file_id] = FileAndPath(file, file_path)\n\n        self.io_service.create_temp_files.return_value.__enter__.return_value = file_paths\n        self.telegram_bot.get_file.side_effect = lambda file_id: files[file_id].file\n\n        async with self.sut.download_files(file_ids) as actual:\n            assert actual == file_paths\n\n            get_file_calls = [call(file_id) for file_id in file_ids]\n            self.telegram_bot.get_file.assert_has_calls(get_file_calls)\n\n            for file_and_path in files.values():\n                file_and_path.file.download_to_drive.assert_called_once_with(\n                    custom_path=file_and_path.path\n                )\n\n    @pytest.mark.asyncio\n    async def test_cancel_conversation(self) -> None:\n        self.telegram_update.callback_query = None\n\n        actual = await self.sut.cancel_conversation(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_message.reply_text.assert_called_once()\n        self.telegram_callback_query.answer.assert_not_called()\n        self.telegram_callback_query.edit_message_text.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_cancel_conversation_with_callback_query(self) -> None:\n        self.telegram_update.callback_query = self.telegram_callback_query\n\n        actual = await self.sut.cancel_conversation(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_callback_query.answer.assert_called_once()\n        self.telegram_context.drop_callback_data.assert_called_once_with(\n            self.telegram_callback_query\n        )\n        self.telegram_callback_query.edit_message_text.assert_called_once()\n        self.telegram_message.reply_text.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_get_back_button(self) -> None:\n        actual = self.sut.get_back_button(self.telegram_update, self.telegram_context)\n\n        assert actual.text == self.BACK\n        assert isinstance(actual.callback_data, BackData)\n\n    @pytest.mark.asyncio\n    async def test_get_back_inline_markup(self) -> None:\n        actual = self.sut.get_back_inline_markup(self.telegram_update, self.telegram_context)\n\n        assert len(actual.inline_keyboard) == 1\n        assert len(actual.inline_keyboard[0]) == 1\n\n        button = actual.inline_keyboard[0][0]\n        assert button.text == self.BACK\n        assert isinstance(button.callback_data, BackData)\n\n    @pytest.mark.asyncio\n    async def test_get_support_markup(self) -> None:\n        actual = self.sut.get_support_markup(self.telegram_update, self.telegram_context)\n        assert isinstance(actual, InlineKeyboardMarkup)\n\n    def test_get_user_data(self) -> None:\n        self.telegram_context.user_data = {self.USER_DATA_KEY: self.USER_DATA_VALUE}\n\n        actual = self.sut.get_user_data(self.telegram_context, self.USER_DATA_KEY)\n\n        assert actual == self.USER_DATA_VALUE\n        assert self.USER_DATA_KEY not in self.telegram_context.user_data\n\n    @pytest.mark.parametrize(\"user_data\", [None, {}])\n    def test_get_user_data_key_error(self, user_data: dict | None) -> None:\n        self.telegram_context.user_data = user_data\n\n        with pytest.raises(TelegramGetUserDataError):\n            self.sut.get_user_data(self.telegram_context, self.USER_DATA_KEY)\n\n    def test_user_data_contains(self) -> None:\n        self.telegram_context.user_data = {self.USER_DATA_KEY: self.USER_DATA_VALUE}\n        actual = self.sut.user_data_contains(self.telegram_context, self.USER_DATA_KEY)\n        assert actual is True\n\n    def test_user_data_contains_without_key(self) -> None:\n        self.telegram_context.user_data = {self.USER_DATA_KEY: self.USER_DATA_VALUE}\n        actual = self.sut.user_data_contains(self.telegram_context, \"unknown_key\")\n        assert actual is False\n\n    def test_user_data_contains_without_user_data(self) -> None:\n        self.telegram_context.user_data = None\n        actual = self.sut.user_data_contains(self.telegram_context, \"unknown_key\")\n        assert actual is False\n\n    def test_update_user_data(self) -> None:\n        self.telegram_context.user_data = {}\n        self.sut.update_user_data(self.telegram_context, self.USER_DATA_KEY, self.USER_DATA_VALUE)\n        assert self.telegram_context.user_data[self.USER_DATA_KEY] == self.USER_DATA_VALUE\n\n    def test_update_user_data_error(self) -> None:\n        self.telegram_context.user_data = None\n        with pytest.raises(TelegramUpdateUserDataError):\n            self.sut.update_user_data(\n                self.telegram_context, self.USER_DATA_KEY, self.USER_DATA_VALUE\n            )\n\n    def test_get_file_data(self) -> None:\n        self.telegram_context.user_data = {FILE_DATA: self.FILE_DATA}\n\n        actual = self.sut.get_file_data(self.telegram_context)\n\n        assert actual == self.FILE_DATA\n        assert FILE_DATA not in self.telegram_context.user_data\n\n    def test_cache_file_data(self) -> None:\n        self.telegram_context.user_data = {}\n        self.sut.cache_file_data(self.telegram_context, self.FILE_DATA)\n        assert self.telegram_context.user_data[FILE_DATA] == self.FILE_DATA\n\n    def test_get_message_data(self) -> None:\n        self.telegram_context.user_data = {MESSAGE_DATA: self.MESSAGE_DATA}\n\n        actual = self.sut.get_message_data(self.telegram_context)\n\n        assert actual == self.MESSAGE_DATA\n        assert MESSAGE_DATA not in self.telegram_context.user_data\n\n    def test_cache_message_data(self) -> None:\n        self.telegram_context.user_data = {}\n        self.sut.cache_message_data(self.telegram_context, self.telegram_message)\n        assert self.telegram_context.user_data[MESSAGE_DATA] == MessageData.from_telegram_message(\n            self.telegram_message\n        )\n\n    def test_cache_message_data_error(self) -> None:\n        self.telegram_context.user_data = None\n        self.sut.cache_message_data(self.telegram_context, self.telegram_message)\n\n    def test_cache_message_data_not_message(self) -> None:\n        self.telegram_context.user_data = {}\n        self.sut.cache_message_data(self.telegram_context, True)\n        assert MESSAGE_DATA not in self.telegram_context.user_data\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\"side_effect\", [None, KeyError])\n    async def test_answer_query_and_drop_data(self, side_effect: type[Exception] | None) -> None:\n        self.telegram_context.drop_callback_data.side_effect = side_effect\n\n        await self.sut.answer_query_and_drop_data(\n            self.telegram_context, self.telegram_callback_query\n        )\n\n        self.telegram_callback_query.answer.assert_called_once()\n        self.telegram_context.drop_callback_data.assert_called_once_with(\n            self.telegram_callback_query\n        )\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\"parse_mode\", [None, ParseMode.HTML])\n    async def test_reply_with_back_markup(self, parse_mode: ParseMode | None) -> None:\n        markup = ReplyKeyboardMarkup([[self.BACK]], one_time_keyboard=True, resize_keyboard=True)\n        await self.sut.reply_with_back_markup(\n            self.telegram_update, self.telegram_context, self.TELEGRAM_TEXT, parse_mode\n        )\n        self.telegram_message.reply_text.assert_called_once_with(\n            self.TELEGRAM_TEXT, reply_markup=markup, parse_mode=parse_mode\n        )\n\n    @pytest.mark.asyncio\n    @pytest.mark.parametrize(\"parse_mode\", [None, ParseMode.HTML])\n    async def test_reply_with_cancel_markup(self, parse_mode: ParseMode | None) -> None:\n        markup = ReplyKeyboardMarkup([[self.CANCEL]], one_time_keyboard=True, resize_keyboard=True)\n        await self.sut.reply_with_cancel_markup(\n            self.telegram_update, self.telegram_context, self.TELEGRAM_TEXT, parse_mode\n        )\n        self.telegram_message.reply_text.assert_called_once_with(\n            self.TELEGRAM_TEXT, reply_markup=markup, parse_mode=parse_mode\n        )\n\n    @pytest.mark.asyncio\n    async def test_send_file_document(self) -> None:\n        file_path = self.file_path.with_suffix(\".pdf\")\n        stat = self.mock_path_stat(file_path)\n        stat.st_size = FileSizeLimit.FILESIZE_UPLOAD\n        self.telegram_update.callback_query = None\n\n        await self.sut.send_file(\n            self.telegram_update,\n            self.telegram_context,\n            file_path,\n            TaskType.merge_pdf,\n        )\n\n        self.telegram_bot.send_chat_action.assert_called_once_with(\n            self.TELEGRAM_CHAT_ID, ChatAction.UPLOAD_DOCUMENT\n        )\n        self.telegram_bot.send_document.assert_called_once()\n        self.analytics_service.send_event.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            TaskType.merge_pdf,\n            EventAction.complete,\n        )\n\n    @pytest.mark.asyncio\n    async def test_send_file_image(self) -> None:\n        self.file_path.suffix = \".png\"\n        stat = self.mock_path_stat(self.file_path)\n        stat.st_size = FileSizeLimit.FILESIZE_UPLOAD\n        self.telegram_update.callback_query = None\n\n        await self.sut.send_file(\n            self.telegram_update,\n            self.telegram_context,\n            self.file_path,\n            TaskType.merge_pdf,\n        )\n\n        self.telegram_bot.send_chat_action.assert_called_once_with(\n            self.TELEGRAM_CHAT_ID, ChatAction.UPLOAD_PHOTO\n        )\n        self.telegram_bot.send_photo.assert_called_once()\n        self.analytics_service.send_event.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            TaskType.merge_pdf,\n            EventAction.complete,\n        )\n\n    @pytest.mark.asyncio\n    async def test_send_file_document_with_query(self) -> None:\n        chat_id = 10\n        file_path = self.file_path.with_suffix(\".pdf\")\n        stat = self.mock_path_stat(file_path)\n        stat.st_size = FileSizeLimit.FILESIZE_UPLOAD\n        message = MagicMock(spec=Message)\n        message.chat_id = chat_id\n        self.telegram_callback_query.message = message\n        self.telegram_update.callback_query = self.telegram_callback_query\n\n        await self.sut.send_file(\n            self.telegram_update,\n            self.telegram_context,\n            file_path,\n            TaskType.merge_pdf,\n        )\n\n        self.telegram_bot.send_chat_action.assert_called_once_with(\n            chat_id, ChatAction.UPLOAD_DOCUMENT\n        )\n        self.telegram_bot.send_document.assert_called_once()\n        self.analytics_service.send_event.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            TaskType.merge_pdf,\n            EventAction.complete,\n        )\n\n    @pytest.mark.asyncio\n    async def test_send_file_too_large(self) -> None:\n        stat = self.mock_path_stat(self.file_path)\n        stat.st_size = FileSizeLimit.FILESIZE_UPLOAD + 1\n\n        await self.sut.send_file(\n            self.telegram_update,\n            self.telegram_context,\n            self.file_path,\n            TaskType.merge_pdf,\n        )\n\n        self.telegram_bot.send_chat_action.assert_not_called()\n        self.telegram_bot.send_document.assert_not_called()\n        self.telegram_bot.send_photo.assert_not_called()\n        self.analytics_service.send_event.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_send_file_names(self) -> None:\n        file_data_list = [FileData(\"a\", \"a\"), FileData(\"b\")]\n\n        await self.sut.send_file_names(self.TELEGRAM_CHAT_ID, self.TELEGRAM_TEXT, file_data_list)\n\n        self.telegram_bot.send_message.assert_called_once_with(\n            self.TELEGRAM_CHAT_ID,\n            f\"{self.TELEGRAM_TEXT}1: a\\n2: File name unavailable\\n\",\n        )\n\n    @pytest.mark.asyncio\n    async def test_send_file_names_truncate(self) -> None:\n        file_data_list = [FileData(str(x), str(x)) for x in range(MessageLimit.MAX_TEXT_LENGTH + 1)]\n\n        await self.sut.send_file_names(self.TELEGRAM_CHAT_ID, self.TELEGRAM_TEXT, file_data_list)\n\n        args = self.telegram_bot.send_message.call_args[0]\n        text = args[1]\n\n        assert len(text) == MessageLimit.MAX_TEXT_LENGTH\n        assert text.endswith(self.MESSAGE_TRUNCATED)\n\n    @pytest.mark.asyncio\n    async def test_send_message(self) -> None:\n        await self.sut.send_message(self.telegram_update, self.telegram_context, self.TELEGRAM_TEXT)\n        self.telegram_bot.send_message.assert_called_once_with(\n            self.TELEGRAM_CHAT_ID, self.TELEGRAM_TEXT\n        )\n"
  },
  {
    "path": "tests/test_containers.py",
    "content": "from unittest.mock import MagicMock\n\nfrom dependency_injector.providers import Container, Singleton\nfrom google.cloud.datastore import Client as DatastoreClient\n\nfrom pdf_bot.containers import Application\n\n\nclass TestContainer:\n    def test_container(self) -> None:\n        app = Application()\n        datastore = MagicMock(spec=DatastoreClient)\n\n        with app.clients.datastore.override(datastore):\n            self._test_providers(app.repositories)\n            self._test_providers(app.services)\n            self._test_providers(app.processors)\n            self._test_providers(app.handlers)\n\n    def _test_providers(self, container: Container) -> None:\n        for provider in container.providers.values():  # type: ignore[attr-defined]\n            if isinstance(provider, Singleton):\n                provided = provider()\n                assert isinstance(provided, provider.cls)\n"
  },
  {
    "path": "tests/test_models.py",
    "content": "from unittest.mock import MagicMock\n\nfrom pdf_bot.models import FileData, TaskData\nfrom tests.telegram_internal import TelegramTestMixin\n\n\nclass UnknownTelegramObject:\n    pass\n\n\nclass TestFileData(TelegramTestMixin):\n    def test_from_telegram_document(self) -> None:\n        actual = FileData.from_telegram_object(self.telegram_document)\n        assert actual == FileData(self.TELEGRAM_DOCUMENT_ID, self.TELEGRAM_DOCUMENT_NAME)\n\n    def test_from_telegram_photo_size(self) -> None:\n        actual = FileData.from_telegram_object(self.telegram_photo_size)\n        assert actual == FileData(self.TELEGRAM_PHOTO_SIZE_ID)\n\n\nclass TestTaskData(TelegramTestMixin):\n    def test_get_file_data(self) -> None:\n        expected = MagicMock()\n        mock_data_type = MagicMock(spec=FileData)\n        mock_data_type.from_telegram_object.return_value = expected\n        sut = TaskData(\"label\", mock_data_type)\n\n        actual = sut.get_file_data(self.telegram_document)\n\n        assert actual == expected\n        mock_data_type.from_telegram_object.assert_called_once_with(self.telegram_document)\n"
  },
  {
    "path": "tests/text/__init__.py",
    "content": ""
  },
  {
    "path": "tests/text/test_text_handler.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CommandHandler, ConversationHandler, MessageHandler\n\nfrom pdf_bot.consts import TEXT_FILTER\nfrom pdf_bot.text import TextHandler, TextService\nfrom tests.telegram_internal import TelegramServiceTestMixin\n\n\nclass TestTextHandler(TelegramServiceTestMixin):\n    TEXT_COMMAND = \"text\"\n    CANCEL_COMMAND = \"cancel\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.text_service = MagicMock(spec=TextService)\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = TextHandler(self.text_service, self.telegram_service)\n\n    @pytest.mark.asyncio\n    async def test_conversation_handler(self) -> None:\n        actual = self.sut.handlers\n        assert len(actual) == 1\n\n        handler = actual[0]\n        assert isinstance(handler, ConversationHandler)\n\n        entry_points = handler.entry_points\n        assert len(entry_points) == 1\n        assert isinstance(entry_points[0], CommandHandler)\n        assert entry_points[0].commands == {self.TEXT_COMMAND}\n\n        states = handler.states\n        assert TextService.WAIT_TEXT in states\n        wait_text = states[TextService.WAIT_TEXT]\n        assert len(wait_text) == 1\n\n        assert isinstance(wait_text[0], MessageHandler)\n        assert wait_text[0].filters == TEXT_FILTER\n\n        assert TextService.WAIT_FONT in states\n        wait_font = states[TextService.WAIT_FONT]\n        assert len(wait_font) == 1\n\n        assert isinstance(wait_font[0], MessageHandler)\n        assert wait_font[0].filters == TEXT_FILTER\n\n        fallbacks = handler.fallbacks\n        assert len(fallbacks) == 1\n\n        assert isinstance(fallbacks[0], CommandHandler)\n        assert fallbacks[0].commands == {self.CANCEL_COMMAND}\n\n        for handler in entry_points + wait_text + wait_font + fallbacks:\n            await handler.callback(self.telegram_update, self.telegram_context)\n\n        self.text_service.ask_pdf_text.assert_called_once()\n        self.text_service.ask_pdf_font.assert_called_once()\n        self.text_service.check_text.assert_called_once()\n        self.telegram_service.cancel_conversation.assert_called_once()\n"
  },
  {
    "path": "tests/text/test_text_repository.py",
    "content": "from unittest.mock import MagicMock\n\nfrom requests import Response, Session\n\nfrom pdf_bot.pdf import FontData\nfrom pdf_bot.text import TextRepository\n\n\nclass TestTextRepository:\n    FONT_FAMILY = \"font_family\"\n    FONT_URL = \"font_url\"\n    GOOGLE_FONTS_TOKEN = \"google_fonts_token\"\n\n    def setup_method(self) -> None:\n        self.response = MagicMock(spec=Response)\n        self.response.json.return_value = {\n            \"items\": [{\"family\": self.FONT_FAMILY, \"files\": {\"regular\": self.FONT_URL}}]\n        }\n\n        self.session = MagicMock(spec=Session)\n        self.session.get.return_value = self.response\n\n        self.sut = TextRepository(self.session, self.GOOGLE_FONTS_TOKEN)\n\n    def test_get_font(self) -> None:\n        actual = self.sut.get_font(self.FONT_FAMILY)\n\n        assert actual == FontData(self.FONT_FAMILY, self.FONT_URL)\n        self._assert_api_call()\n\n    def test_get_font_no_regular_font(self) -> None:\n        self.response.json.return_value = {\"items\": [{\"family\": self.FONT_FAMILY, \"files\": {}}]}\n\n        actual = self.sut.get_font(self.FONT_FAMILY)\n\n        assert actual is None\n        self._assert_api_call()\n\n    def test_get_font_unknown_font(self) -> None:\n        actual = self.sut.get_font(\"clearly_unknown_font\")\n\n        assert actual is None\n        self._assert_api_call()\n\n    def _assert_api_call(self) -> None:\n        self.session.get.assert_called_with(\n            \"https://www.googleapis.com/webfonts/v1/webfonts\",\n            params={\"key\": self.GOOGLE_FONTS_TOKEN},\n        )\n"
  },
  {
    "path": "tests/text/test_text_service.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.pdf import PdfService\nfrom pdf_bot.pdf.models import FontData\nfrom pdf_bot.telegram_internal import TelegramServiceError\nfrom pdf_bot.text import TextRepository, TextService\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestTextService(LanguageServiceTestMixin, TelegramServiceTestMixin, TelegramTestMixin):\n    WAIT_TEXT = 0\n    WAIT_FONT = 1\n\n    TEXT_KEY = \"text\"\n    SKIP = \"Skip\"\n    PDF_TEXT = \"pdf_text\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.font_data = MagicMock(spec=FontData)\n\n        self.text_repository = MagicMock(spec=TextRepository)\n        self.text_repository.get_font.return_value = self.font_data\n\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n\n        self.telegram_service = self.mock_telegram_service()\n        self.telegram_service.get_user_data.side_effect = None\n        self.telegram_service.get_user_data.return_value = self.PDF_TEXT\n\n        self.sut = TextService(\n            self.text_repository,\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n        )\n\n    @pytest.mark.asyncio\n    async def test_ask_pdf_text(self) -> None:\n        actual = await self.sut.ask_pdf_text(self.telegram_update, self.telegram_context)\n        assert actual == self.WAIT_TEXT\n        self.telegram_service.reply_with_cancel_markup.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_ask_pdf_font(self) -> None:\n        actual = await self.sut.ask_pdf_font(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_FONT\n        self.telegram_service.update_user_data.assert_called_once_with(\n            self.telegram_context, self.TEXT_KEY, self.TELEGRAM_TEXT\n        )\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_ask_pdf_font_cancel_option(self) -> None:\n        self.telegram_message.text = \"Cancel\"\n\n        actual = await self.sut.ask_pdf_font(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_context.user_data.__setitem__.assert_not_called()\n        self.telegram_service.cancel_conversation.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_text(self) -> None:\n        self.pdf_service.create_pdf_from_text.return_value.__aenter__.return_value = self.file_path\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.text_repository.get_font.assert_called_once_with(self.TELEGRAM_TEXT)\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.TEXT_KEY\n        )\n        self.pdf_service.create_pdf_from_text.assert_called_once_with(self.PDF_TEXT, self.font_data)\n        self.telegram_service.send_file.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            self.file_path,\n            TaskType.text_to_pdf,\n        )\n\n    @pytest.mark.asyncio\n    async def test_check_text_invalid_user_data(self) -> None:\n        self.telegram_service.get_user_data.side_effect = TelegramServiceError()\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.text_repository.get_font.assert_called_once_with(self.TELEGRAM_TEXT)\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.TEXT_KEY\n        )\n        self.pdf_service.create_pdf_from_text.assert_not_called()\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_check_text_unknown_font(self) -> None:\n        self.text_repository.get_font.return_value = None\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_FONT\n        self.text_repository.get_font.assert_called_once_with(self.TELEGRAM_TEXT)\n        self.telegram_service.get_user_data.assert_not_called()\n        self.pdf_service.create_pdf_from_text.assert_not_called()\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_check_text_skip_option(self) -> None:\n        self.telegram_message.text = self.SKIP\n        self.pdf_service.create_pdf_from_text.return_value.__aenter__.return_value = self.file_path\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.text_repository.get_font.assert_not_called()\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.TEXT_KEY\n        )\n        self.pdf_service.create_pdf_from_text.assert_called_once_with(self.PDF_TEXT, None)\n        self.telegram_service.send_file.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            self.file_path,\n            TaskType.text_to_pdf,\n        )\n\n    @pytest.mark.asyncio\n    async def test_check_text_cancel_option(self) -> None:\n        self.telegram_message.text = \"Cancel\"\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.text_repository.get_font.assert_not_called()\n        self.telegram_service.get_user_data.assert_not_called()\n        self.pdf_service.create_pdf_from_text.assert_not_called()\n        self.telegram_service.send_file.assert_not_called()\n"
  },
  {
    "path": "tests/watermark/__init__.py",
    "content": ""
  },
  {
    "path": "tests/watermark/test_watermark_handler.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import CommandHandler, ConversationHandler, MessageHandler, filters\n\nfrom pdf_bot.consts import TEXT_FILTER\nfrom pdf_bot.watermark import WatermarkHandler, WatermarkService\nfrom tests.telegram_internal import TelegramServiceTestMixin\n\n\nclass TestWatermarkHandler(TelegramServiceTestMixin):\n    WATERMARK_COMMAND = \"watermark\"\n    CANCEL_COMMAND = \"cancel\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.watermark_service = MagicMock(spec=WatermarkService)\n        self.telegram_service = self.mock_telegram_service()\n\n        self.sut = WatermarkHandler(self.watermark_service, self.telegram_service)\n\n    @pytest.mark.asyncio\n    async def test_conversation_handler(self) -> None:\n        actual = self.sut.handlers\n        assert len(actual) == 1\n\n        handler = actual[0]\n        assert isinstance(handler, ConversationHandler)\n\n        entry_points = handler.entry_points\n        assert len(entry_points) == 1\n        assert isinstance(entry_points[0], CommandHandler)\n        assert entry_points[0].commands == {self.WATERMARK_COMMAND}\n\n        states = handler.states\n        assert WatermarkService.WAIT_SOURCE_PDF in states\n        wait_source_pdf = states[WatermarkService.WAIT_SOURCE_PDF]\n        assert len(wait_source_pdf) == 1\n\n        assert isinstance(wait_source_pdf[0], MessageHandler)\n        assert wait_source_pdf[0].filters == filters.Document.PDF\n\n        assert WatermarkService.WAIT_WATERMARK_PDF in states\n        wait_watermark_pdf = states[WatermarkService.WAIT_WATERMARK_PDF]\n        assert len(wait_watermark_pdf) == 1\n\n        assert isinstance(wait_watermark_pdf[0], MessageHandler)\n        assert wait_watermark_pdf[0].filters == filters.Document.PDF\n\n        fallbacks = handler.fallbacks\n        assert len(fallbacks) == 2\n\n        assert isinstance(fallbacks[0], CommandHandler)\n        assert fallbacks[0].commands == {self.CANCEL_COMMAND}\n\n        assert isinstance(fallbacks[1], MessageHandler)\n        assert fallbacks[1].filters.name == TEXT_FILTER.name\n\n        for handler in entry_points + wait_source_pdf + wait_watermark_pdf + fallbacks:\n            await handler.callback(self.telegram_update, self.telegram_context)\n\n        self.watermark_service.ask_source_pdf.assert_called_once()\n        self.watermark_service.check_source_pdf.assert_called_once()\n        self.watermark_service.add_watermark_to_pdf.assert_called_once()\n        self.watermark_service.check_text.assert_called_once()\n        self.telegram_service.cancel_conversation.assert_called_once()\n"
  },
  {
    "path": "tests/watermark/test_watermark_service.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram.ext import ConversationHandler\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.pdf import PdfService, PdfServiceError\nfrom pdf_bot.telegram_internal import TelegramGetUserDataError, TelegramServiceError\nfrom pdf_bot.watermark import WatermarkService\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestWatermarkService(LanguageServiceTestMixin, TelegramServiceTestMixin, TelegramTestMixin):\n    WAIT_SOURCE_PDF = 0\n    WAIT_WATERMARK_PDF = 1\n    WATERMARK_KEY = \"watermark\"\n    SOURCE_FILE_ID = \"source_file_id\"\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.pdf_service = MagicMock(spec=PdfService)\n        self.language_service = self.mock_language_service()\n\n        self.telegram_service = self.mock_telegram_service()\n        self.telegram_service.get_user_data.side_effect = None\n        self.telegram_service.get_user_data.return_value = self.SOURCE_FILE_ID\n\n        self.sut = WatermarkService(\n            self.pdf_service,\n            self.telegram_service,\n            self.language_service,\n        )\n\n    @pytest.mark.asyncio\n    async def test_ask_source_pdf(self) -> None:\n        actual = await self.sut.ask_source_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_SOURCE_PDF\n        self.telegram_service.reply_with_cancel_markup.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_source_pdf(self) -> None:\n        actual = await self.sut.check_source_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_WATERMARK_PDF\n        self.telegram_service.check_pdf_document.assert_called_once_with(self.telegram_message)\n        self.telegram_service.update_user_data.assert_called_once_with(\n            self.telegram_context, self.WATERMARK_KEY, self.TELEGRAM_DOCUMENT_ID\n        )\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_source_pdf_invalid_pdf(self) -> None:\n        self.telegram_service.check_pdf_document.side_effect = TelegramServiceError()\n\n        actual = await self.sut.check_source_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_SOURCE_PDF\n        self.telegram_service.check_pdf_document.assert_called_once_with(self.telegram_message)\n        self.telegram_context.user_data.__setitem__.assert_not_called()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_add_watermark_to_pdf(self) -> None:\n        self.pdf_service.add_watermark_to_pdf.return_value.__aenter__.return_value = self.file_path\n\n        actual = await self.sut.add_watermark_to_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.check_pdf_document.assert_called_once_with(self.telegram_message)\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.WATERMARK_KEY\n        )\n        self.pdf_service.add_watermark_to_pdf.assert_called_once_with(\n            self.SOURCE_FILE_ID, self.TELEGRAM_DOCUMENT_ID\n        )\n        self.telegram_service.send_file.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            self.file_path,\n            TaskType.watermark_pdf,\n        )\n\n    @pytest.mark.asyncio\n    async def test_add_watermark_to_pdf_service_error(self) -> None:\n        self.pdf_service.add_watermark_to_pdf.side_effect = PdfServiceError()\n\n        actual = await self.sut.add_watermark_to_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.check_pdf_document.assert_called_once_with(self.telegram_message)\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.WATERMARK_KEY\n        )\n        self.pdf_service.add_watermark_to_pdf.assert_called_once_with(\n            self.SOURCE_FILE_ID, self.TELEGRAM_DOCUMENT_ID\n        )\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_add_watermark_to_pdf_invalid_user_data(self) -> None:\n        self.telegram_service.get_user_data.side_effect = TelegramGetUserDataError()\n\n        actual = await self.sut.add_watermark_to_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.check_pdf_document.assert_called_once_with(self.telegram_message)\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.WATERMARK_KEY\n        )\n        self.pdf_service.add_watermark_to_pdf.assert_not_called()\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_add_watermark_to_pdf_invalid_pdf(self) -> None:\n        self.telegram_service.check_pdf_document.side_effect = TelegramServiceError()\n\n        actual = await self.sut.add_watermark_to_pdf(self.telegram_update, self.telegram_context)\n\n        assert actual == self.WAIT_WATERMARK_PDF\n        self.telegram_service.check_pdf_document.assert_called_once_with(self.telegram_message)\n        self.telegram_service.get_user_data.assert_not_called()\n        self.pdf_service.add_watermark_to_pdf.assert_not_called()\n        self.telegram_service.send_file.assert_not_called()\n\n    @pytest.mark.asyncio\n    async def test_check_text_back_option(self) -> None:\n        self.telegram_message.text = \"Back\"\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n        assert actual == self.WAIT_SOURCE_PDF\n\n    @pytest.mark.asyncio\n    async def test_check_text_cancel_option(self) -> None:\n        self.telegram_message.text = \"Cancel\"\n\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n\n        assert actual == ConversationHandler.END\n        self.telegram_service.cancel_conversation.assert_called_once()\n\n    @pytest.mark.asyncio\n    async def test_check_text_unknown_text(self) -> None:\n        self.telegram_message.text = \"clearly_unknown\"\n        actual = await self.sut.check_text(self.telegram_update, self.telegram_context)\n        assert actual is None\n"
  },
  {
    "path": "tests/webpage/__init__.py",
    "content": ""
  },
  {
    "path": "tests/webpage/test_webpage_handler.py",
    "content": "from unittest.mock import MagicMock\n\nimport pytest\nfrom telegram import MessageEntity\nfrom telegram.ext import MessageHandler, filters\n\nfrom pdf_bot.webpage import WebpageHandler, WebpageService\nfrom tests.telegram_internal import TelegramTestMixin\n\n\nclass TestWebpageHandler(TelegramTestMixin):\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.webpage_service = MagicMock(spec=WebpageService)\n        self.sut = WebpageHandler(self.webpage_service)\n\n    @pytest.mark.asyncio\n    async def test_handlers(self) -> None:\n        actual = self.sut.handlers\n        assert len(actual) == 1\n\n        handler = actual[0]\n        assert isinstance(handler, MessageHandler)\n        assert handler.filters.name == filters.Entity(MessageEntity.URL).name\n\n        for handler in actual:\n            await handler.callback(self.telegram_update, self.telegram_context)\n\n        self.webpage_service.url_to_pdf.assert_called_once()\n"
  },
  {
    "path": "tests/webpage/test_webpage_service.py",
    "content": "import hashlib\nfrom unittest.mock import MagicMock, patch\n\nimport pytest\nfrom weasyprint import HTML\nfrom weasyprint.css.tokens import InvalidValues\nfrom weasyprint.urls import URLFetchingError\n\nfrom pdf_bot.analytics import TaskType\nfrom pdf_bot.io_internal import IOService\nfrom pdf_bot.telegram_internal import TelegramGetUserDataError, TelegramUpdateUserDataError\nfrom pdf_bot.webpage import WebpageService\nfrom tests.language import LanguageServiceTestMixin\nfrom tests.telegram_internal import TelegramServiceTestMixin, TelegramTestMixin\n\n\nclass TestWebpageService(LanguageServiceTestMixin, TelegramServiceTestMixin, TelegramTestMixin):\n    URL = \"https://example.com\"\n    HOSTNAME = \"example.com\"\n    URL_HASH = hashlib.sha256(URL.encode(\"utf-8\")).hexdigest()\n\n    def setup_method(self) -> None:\n        super().setup_method()\n        self.telegram_message.text = self.URL\n\n        self.io_service = MagicMock(spec=IOService)\n        self.io_service.create_temp_pdf_file.return_value.__enter__.return_value = self.file_path\n\n        self.telegram_service = self.mock_telegram_service()\n        self.telegram_service.user_data_contains.return_value = False\n\n        self.language_service = self.mock_language_service()\n        self.sut = WebpageService(self.io_service, self.language_service, self.telegram_service)\n\n        self.html = MagicMock(spec=HTML)\n        self.html_cls_patcher = patch(\n            \"pdf_bot.webpage.webpage_service.HTML\", return_value=self.html\n        )\n        self.html_cls = self.html_cls_patcher.start()\n\n    def teardown_method(self) -> None:\n        self.html_cls_patcher.stop()\n\n    @pytest.mark.asyncio\n    async def test_url_to_pdf(self) -> None:\n        await self.sut.url_to_pdf(self.telegram_update, self.telegram_context)\n\n        self._assert_url_to_pdf_calls()\n        self._assert_url_to_pdf_send_file()\n\n    @pytest.mark.asyncio\n    async def test_url_to_pdf_clear_cache_error(self) -> None:\n        self.telegram_service.get_user_data.side_effect = TelegramGetUserDataError\n\n        await self.sut.url_to_pdf(self.telegram_update, self.telegram_context)\n\n        self._assert_url_to_pdf_calls()\n        self._assert_url_to_pdf_send_file()\n\n    @pytest.mark.asyncio\n    async def test_url_to_pdf_cache_error(self) -> None:\n        self.telegram_service.update_user_data.side_effect = TelegramUpdateUserDataError\n\n        await self.sut.url_to_pdf(self.telegram_update, self.telegram_context)\n\n        self._assert_url_to_pdf_calls()\n        self._assert_url_to_pdf_send_file()\n\n    @pytest.mark.asyncio\n    async def test_url_to_pdf_in_progress(self) -> None:\n        self.telegram_service.user_data_contains.return_value = True\n\n        await self.sut.url_to_pdf(self.telegram_update, self.telegram_context)\n\n        self.telegram_service.user_data_contains.assert_called_once_with(\n            self.telegram_context, self.URL_HASH\n        )\n        self.telegram_service.update_user_data.assert_not_called()\n        self.io_service.create_temp_pdf_file.assert_not_called()\n        self.html.write_pdf.assert_not_called()\n\n        self.telegram_service.get_user_data.assert_not_called()\n        self.telegram_update.effective_message.reply_text.assert_called_once()\n\n    @pytest.mark.parametrize(\n        \"error\",\n        [\n            URLFetchingError,\n            AssertionError,\n            AttributeError,\n            IndexError,\n            InvalidValues,\n            KeyError,\n            OverflowError,\n            RuntimeError,\n            ValueError,\n            TypeError,\n        ],\n    )\n    @pytest.mark.asyncio\n    async def test_url_to_pdf_error(self, error: type[Exception]) -> None:\n        self.html.write_pdf.side_effect = error\n\n        await self.sut.url_to_pdf(self.telegram_update, self.telegram_context)\n\n        self._assert_url_to_pdf_calls()\n        self.telegram_service.send_file.assert_not_called()\n        assert self.telegram_update.effective_message.reply_text.call_count == 2\n\n    def _assert_url_to_pdf_calls(self) -> None:\n        self.telegram_service.user_data_contains.assert_called_once_with(\n            self.telegram_context, self.URL_HASH\n        )\n        self.telegram_service.update_user_data.assert_called_once_with(\n            self.telegram_context, self.URL_HASH, None\n        )\n        self.io_service.create_temp_pdf_file.assert_called_once_with(self.HOSTNAME)\n        self.html.write_pdf.assert_called_once_with(self.file_path)\n\n        self.telegram_service.get_user_data.assert_called_once_with(\n            self.telegram_context, self.URL_HASH\n        )\n\n    def _assert_url_to_pdf_send_file(self) -> None:\n        self.telegram_service.send_file.assert_called_once_with(\n            self.telegram_update,\n            self.telegram_context,\n            self.file_path,\n            TaskType.url_to_pdf,\n        )\n"
  }
]